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