為了在 Python 中快速構建 API,我主要依賴于 Flask 。最近我遇到了一個名為 “API Star” 的基于 Python 3 的新 API 框架。由于幾個原因,我對它很感興趣。首先,該框架包含 Python 新特點,如類型提示和 asyncio。而且它再進一步為開發人員提供了很棒的開發體驗。我們很快就會講到這些功能,但在我們開始之前,我首先要感謝 Tom Christie,感謝他為 Django REST Framework 和 API Star 所做的所有工作。
現在說回 API Star —— 我感覺這個框架很有成效。我可以選擇基于 asyncio 編寫異步代碼,或者可以選擇傳統后端方式就像 WSGI 那樣。它配備了一個命令行工具 —— apistar 來幫助我們更快地完成工作。它支持 Django ORM 和 SQLAlchemy,這是可選的。它有一個出色的類型系統,使我們能夠定義輸入和輸出的約束,API Star 可以自動生成 API 的模式(包括文檔),提供驗證和序列化功能等等。雖然 API Star 專注于構建 API,但你也可以非常輕松地在其上構建 Web 應用程序。在我們自己構建一些東西之前,所有這些可能都沒有意義的。
開始
我們將從安裝 API Star 開始。為此實驗創建一個虛擬環境是一個好主意。如果你不知道如何創建一個虛擬環境,不要擔心,繼續往下看。
pip install apistar
(上面的命令是在 Python3 虛擬環境下使用的)
如果你沒有使用虛擬環境或者你的 Python 3 的 pip 名為 pip3,那么使用 pip3 install apistar
代替。
一旦我們安裝了這個包,我們就應該可以使用 apistar 命令行工具了。我們可以用它創建一個新項目,讓我們在當前目錄中創建一個新項目。
apistar new .
現在我們應該創建兩個文件:app.py,它包含主應用程序,然后是 test.py,它用于測試。讓我們來看看 app.py 文件:
from apistar import Include, Routefrom apistar.frameworks.wsgi import WSGIApp as Appfrom apistar.handlers import docs_urls, static_urlsdef welcome(name=None):if name is None:return {'message': 'Welcome to API Star!'}return {'message': 'Welcome to API Star, %s!' % name}routes = [Route('/', 'GET', welcome),Include('/docs', docs_urls),Include('/static', static_urls)]app = App(routes=routes)if __name__ == '__main__':app.main()
在我們深入研究代碼之前,讓我們運行應用程序并查看它是否正常工作。我們在瀏覽器中輸入 http://127.0.0.1:8080/,我們將得到以下響應:
{"message": "Welcome to API Star!"}
如果我們輸入:http://127.0.0.1:8080/?name=masnun
{"message": "Welcome to API Star, masnun!"}
同樣的,輸入 http://127.0.0.1:8080/docs/,我們將看到自動生成的 API 文檔。
新聞熱點
疑難解答