如何评价最近爆红的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:

from datetime import date

from pydantic import BaseModel

# Declare a variable as a str
# and get editor support inside the function
def main(user_id: str):
    return user_id


# A Pydantic model
class User(BaseModel):
    id: int
    name: str
    joined: date

可以像这样来使用:

my_user: User = User(id=3, name="John Doe", joined="2018-07-19")

second_user_data = {
    "id": 4,
    "name": "Mary",
    "joined": "2018-11-30",
}

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 框架就是基于这一点的。任何地方都可以进行自动补全。

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

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值