為了在 Python 中快速構(gòu)建 API,我主要依賴于 Flask 。最近我遇到了一個(gè)名為 “API Star” 的基于 Python 3 的新 API 框架。由于幾個(gè)原因,我對(duì)它很感興趣。首先,該框架包含 Python 新特點(diǎn),如類型提示和 asyncio。而且它再進(jìn)一步為開發(fā)人員提供了很棒的開發(fā)體驗(yàn)。我們很快就會(huì)講到這些功能,但在我們開始之前,我首先要感謝 Tom Christie,感謝他為 Django REST Framework 和 API Star 所做的所有工作。
現(xiàn)在說回 API Star —— 我感覺這個(gè)框架很有成效。我可以選擇基于 asyncio 編寫異步代碼,或者可以選擇傳統(tǒng)后端方式就像 WSGI 那樣。它配備了一個(gè)命令行工具 —— apistar 來幫助我們更快地完成工作。它支持 Django ORM 和 SQLAlchemy,這是可選的。它有一個(gè)出色的類型系統(tǒng),使我們能夠定義輸入和輸出的約束,API Star 可以自動(dòng)生成 API 的模式(包括文檔),提供驗(yàn)證和序列化功能等等。雖然 API Star 專注于構(gòu)建 API,但你也可以非常輕松地在其上構(gòu)建 Web 應(yīng)用程序。在我們自己構(gòu)建一些東西之前,所有這些可能都沒有意義的。
開始
我們將從安裝 API Star 開始。為此實(shí)驗(yàn)創(chuàng)建一個(gè)虛擬環(huán)境是一個(gè)好主意。如果你不知道如何創(chuàng)建一個(gè)虛擬環(huán)境,不要擔(dān)心,繼續(xù)往下看。
pip install apistar
(上面的命令是在 Python3 虛擬環(huán)境下使用的)
如果你沒有使用虛擬環(huán)境或者你的 Python 3 的 pip 名為 pip3,那么使用 pip3 install apistar
代替。
一旦我們安裝了這個(gè)包,我們就應(yīng)該可以使用 apistar 命令行工具了。我們可以用它創(chuàng)建一個(gè)新項(xiàng)目,讓我們?cè)诋?dāng)前目錄中創(chuàng)建一個(gè)新項(xiàng)目。
apistar new .
現(xiàn)在我們應(yīng)該創(chuàng)建兩個(gè)文件:app.py,它包含主應(yīng)用程序,然后是 test.py,它用于測(cè)試。讓我們來看看 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()
在我們深入研究代碼之前,讓我們運(yùn)行應(yīng)用程序并查看它是否正常工作。我們?cè)跒g覽器中輸入 http://127.0.0.1:8080/,我們將得到以下響應(yīng):
{"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/,我們將看到自動(dòng)生成的 API 文檔。
新聞熱點(diǎn)
疑難解答
圖片精選