当前位置:   article > 正文

如何评价最近爆红的FastAPI?

fastapi

一度觉得 sanic是python web框架的未来,支持异步,性能好,类flask的语法,代码简单,没想到被fastapi截胡了,fastapi在github的上星速度非常快。它在怎么样把后端api做好的这件事情上,做的比sanic更全面,更彻底。

FastAPI

FastAPI 是用于构建 Web API 的现代、开源、快速、高性能的 Web 框架,它基于Python 3.6+ 标准类型提示,支持异步,正如它的名字,FastAPI 就是为构建快速的 API 而生。

优点

  • 速度快:可与 NodeJS 和 Go 比肩的极高性能(归功于 Starlette 和 Pydantic),是最快的 Python 网络框架之一
  • 开发快:开发速度提高约 200% 至 300%
  • Bug 少:人为错误减少约 40%*
  • 智能:强大的编辑器支持,处处皆可自动补全,减少调试时间
  • 简单:易学、易用,阅读文档所需时间更短
  • 简短:代码重复最小化,通过不同的参数声明实现丰富功能,Bug 更少
  • 健壮:生产级别的代码,还有自动交互文档
  • 标准:完全兼容并基于 API 开放标准:OpenAPI 和 JSON Schema

缺点

由于 FastAPI 相对较新,因此与其他框架相比,社区较小,第三方的教程相对较少。

用例

FastAPI 适用于构建高性能的 API,本身支持异步,如果要构建异步 API,可以优先选择 FastAPI。Netflix 将其用于内部危机管理。它还可以在部署准备就绪的机器学习模型时完美缩放,因为当 ML 模型封装在 REST API 并部署在微服务中时,它在生产中会发挥最佳作用。

特性

FastAPI 特性

FastAPI 提供了以下内容:

基于开放标准

  • 用于创建 API 的 OpenAPI 包含了路径操作,请求参数,请求体,安全性等的声明。
  • 使用 JSON Schema (因为 OpenAPI 本身就是基于 JSON Schema 的)自动生成数据模型文档。
  • 经过了缜密的研究后围绕这些标准而设计。并非狗尾续貂。
  • 这也允许了在很多语言中自动生成客户端代码

自动生成文档

交互式 API 文档以及具探索性 web 界面。因为该框架是基于 OpenAPI,所以有很多可选项,FastAPI 默认自带两个交互式 API 文档。

  • Swagger UI,可交互式操作,能在浏览器中直接调用和测试你的 API 。

  • 另外的 API 文档:ReDoc

更主流的 Python

全部都基于标准的 Python 3.6 类型声明(感谢 Pydantic )。没有新的语法需要学习。只需要标准的 Python 。

如果你需要2分钟来学习如何使用 Python 类型(即使你不使用 FastAPI ),看看这个简短的教程:Python Types

编写带有类型标注的标准 Python:

  1. from datetime import date
  2. from pydantic import BaseModel
  3. # Declare a variable as a str
  4. # and get editor support inside the function
  5. def main(user_id: str):
  6. return user_id
  7. # A Pydantic model
  8. class User(BaseModel):
  9. id: int
  10. name: str
  11. joined: date

可以像这样来使用:

  1. my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
  2. second_user_data = {
  3. "id": 4,
  4. "name": "Mary",
  5. "joined": "2018-11-30",
  6. }
  7. my_second_user: User = User(**second_user_data)

Info
**second_user_data 意思是:
直接将second_user_data字典的键和值直接作为key-value参数传递,等同于:User(id=4, name="Mary", joined="2018-11-30")

编辑器支持

整个框架都被设计得易于使用且直观,所有的决定都在开发之前就在多个编辑器上进行了测试,来确保最佳的开发体验。

在最近的 Python 开发者调查中,我们能看到 被使用最多的功能是"自动补全"

整个 FastAPI 框架就是基于这一点的。任何地方都可以进行自动补全。

你几乎不需要经常回来看文档。

在这里,你的编辑器可能会这样帮助你:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/503074
推荐阅读
相关标签
  

闽ICP备14008679号