FastAPI框架诞生的缘由(下)

本文作者tiangolo,FastAPI的创造者,探讨了FastAPI的诞生原因,包括APISpec、Marshmallow、Webargs等工具的优缺点,以及Flask-apispec、NestJS、Sanic、Falcon、Molten、Hug和APIStar等多个框架对FastAPI的启发。文章强调了Python类型提示、依赖注入、高性能和OpenAPI标准在FastAPI设计中的重要性。
摘要由CSDN通过智能技术生成

阅读本文大概需要 6.6 分钟。

原文:https://fastapi.tiangolo.com/alternatives/

作者:tiangolo,FastAPI 的创作者,github star 10.1k

翻译:somenzz

侵删

接前文:FastAPI框架诞生的缘由(上)

APISpec

Marshmallow  和 Webargs 提供以插件形式提供验证,解析和序列化。但文档这块缺失,然后 APISpec 诞生了。APISpec 可做为很多框架的插件(也是做为 Starlette 插件)。

 

它的工作方式是,在 Python 的文档字符串内部使用 YAML 格式的描述来为每一个函数自动生成文档。它会生成 OpenAPI 的 schemas。这也是它工作在 Flask, Starlette, Responder 等框架上的方式。

 

缺点是,我们又必须在 Python 的文档字符串使用   YAML 语法,细微的差别可能导致一些错误。如果我们修改参数或 Marshmallow 的 schema,却忘了还修改 YAML 文档字符串,生成的模式将被废弃。

 

APISpec 和 Marshmallow 的作者是同一个开发者。

 

启发 FastAPI 地方:

支持API的开放式标准。

Flask-apispec 

这是一个 Flask 插件,和  Webargs, Marshmallow, APISpec 联系在一起。

 

APISpec使用Webargs 和Marshmallow生产的信息来生成 OpenAPI 的 schemas。

这是一个伟大的工具,非常低估。它应该是比许多 Flask 插件更受欢迎。这可能是由于它的文档过于简洁、抽象。

 

它解决了无需在 Python文档字符串内编写YAML(另一种语法)。

 

在 FastAPI 创建之前,Flask, Flask-apispec, Marshmallow ,Webargs 的联合是我经常用到的后端技术栈。使用这些框架,我们创建了几个 Flask 的全栈生成器。以下是是我和几个外部团队一直到现在都使用的主要技术栈:

  • https://github.com/tiangolo/full-stack

  • https://github.com/tiangolo/full-stack-flask-couchbase

  • https://github.com/tiangolo/full-stack-flask-couchdb

 

启发 FastAPI 地方:

自动生成的 OpenAPI 模式,使用相同的代码定义序列化和验证。

NestJS (and Angular)

这很跟 Pyth

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值