FastAPI 是什么?
生活随笔
收集整理的這篇文章主要介紹了
FastAPI 是什么?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
FastAPI 是什么?
- Django、FastAPI 都是 Web 開(kāi)發(fā)框架,REST、GraphQL 是 API 的形式。
- Django、FastAPI 都可以實(shí)現(xiàn) REST 接口和 GraphQL 接口。
以下是我的一些初步的認(rèn)識(shí):
- FastAPI 是一個(gè)輕量級(jí)的 Web 框架。相比起來(lái),Django 是 battery included,雖然配置麻煩,但默認(rèn)就帶了許多功能,包括很好用的 ORM、migration 工具,也包括很多安全方面的中間件等等,還有比如模板系統(tǒng)、靜態(tài)資源管理系統(tǒng)等等,對(duì)于一般的業(yè)務(wù)網(wǎng)站來(lái)說(shuō),Django 是開(kāi)箱即用的。FastAPI 則非常輕量,它本身什么都不帶,沒(méi)有 ORM、沒(méi)有 migration,沒(méi)有中間件,什么都沒(méi)有。
- FastAPI 是專(zhuān)門(mén)針對(duì) REST 接口定制優(yōu)化的,使用 FastAPI,可以自動(dòng)生成 openapi 文檔(用 swagger 渲染),代碼本身也有很強(qiáng)的注釋屬性(即看代碼跟看文檔效果是類(lèi)似的)。
- FastAPI 是強(qiáng)類(lèi)型的,強(qiáng)制使用 type hint,強(qiáng)制使用 pydantic,數(shù)據(jù)類(lèi)型檢查也是強(qiáng)制的(包括輸入檢查和輸出檢查)。
- FastAPI 本身的所有代碼都充分考慮了 IDE 補(bǔ)全,包括考慮如何讓業(yè)務(wù)代碼也可以有 IDE 補(bǔ)全。這個(gè)補(bǔ)全是基于強(qiáng)類(lèi)型的背景,因此許多問(wèn)題也都可以靜態(tài)檢查出來(lái)。
- FastAPI 借鑒了 Angular 的依賴注入機(jī)制,這套機(jī)制我覺(jué)得比 Django 的中間件方式要直觀很多。
- FastAPI 支持 GraphQL,但也是用 Graphene 實(shí)現(xiàn)的,只是提供了路由掛載支持,與 Django 無(wú)異。因此在 FastAPI 里面寫(xiě) GraphQL 的話,其實(shí)得不到上述任何優(yōu)點(diǎn),除了輕量級(jí)以外,并沒(méi)有什么優(yōu)勢(shì)。
- 由于 FastAPI 不自帶 ORM、migration 工具,我們?nèi)绻?FastAPI 的話,就得使用其他 ORM、migration。目前最好的候選項(xiàng)是 SQLAlchemy。
以上是我的認(rèn)識(shí),歡迎大家補(bǔ)充討論。
總結(jié)
以上是生活随笔為你收集整理的FastAPI 是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android 双屏显示分析
- 下一篇: WBS(Work Breakdown S