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