FastApi教程|历史,设计与未来

发表时间:2020-03-09

前段时间, 一个 FastAPI 用户问

这个项目的历史是什么? 似乎在几周之内就变得无处不在了[...]

这是那段历史。

替代方案

多年来,我一直在创建具有复杂要求的API(机器学习,分布式系统,异步作业,NoSQL数据库等),领导着多个开发团队。

作为其中的一部分,我需要研究,测试和使用许多替代方案。

FastAPI 的历史在 很大程度上 是其前任的历史。

如“ 替代 ”部分所述 :

如果不是其他人以前的工作, FastAPI 将不存在。

在此之前,已经创建了许多工具以帮助启发其创建。

几年来,我一直在避免创建新框架。 首先,我尝试 使用许多不同的框架,插件和工具 来解决 FastAPI 涵盖的所有功能 。

但是在某些时候,除了创建具有所有这些功能的东西,从以前的工具中汲取最佳创意,并使用以前甚至没有的语言功能(以最佳方式)将它们组合起来之外,别无选择(Python 3.6+类型提示)。

调查

通过使用所有以前的替代方案,我有机会从所有替代方案中学习,采纳想法,并以最佳方式将它们结合起来,从而为自己以及与我合作的开发人员团队找到。

例如,很明显,理想情况下,它应该基于标准的Python类型提示。

同样,最好的方法是使用现有的标准。

因此,在甚至开始编写 FastAPI之前 ,我就花了几个月的时间研究OpenAPI,JSON Schema,OAuth2等的规范。了解它们之间的关系,重叠和差异。

设计

然后,我花了一些时间设计用户想要拥有的开发人员“ API”(使用FastAPI的开发人员)。

我在最受欢迎的Python编辑器中测试了几种想法:PyCharm,VS Code,基于Jedi的编辑器。

上一次 Python开发人员调查显示 ,它涵盖了大约80%的用户。

这意味着 FastAPI 经过了80%的Python开发人员使用的编辑器的专门测试。 而且,由于大多数其他编辑器往往会以类似的方式工作,因此,其所有好处实际上应适用于所有编辑器。

这样,我可以找到最好的方法,以尽可能减少代码重复,无处不在的完成,类型和错误检查等。

所有这些都为所有开发人员提供了最佳的开发体验。

要求

在测试了多种选择之后,我决定使用 Pydantic 的优势。

然后,我做出了贡献,以使其完全符合JSON Schema,以支持不同的方式来定义约束声明,并基于多个编辑器中的测试来改善编辑器支持(类型检查,自动完成)。

在开发期间,我还为 Starlette (另一个关键要求) 做出了贡献 。

开发

当我开始 自己 创建 FastAPI时 ,大部分内容已经准备就绪,设计已经定义,需求和工具已经准备就绪,并且有关标准和规范的知识是清晰而新鲜的。

未来

至此,已经很清楚, FastAPI 及其思想对许多人 都有 用。

为了更好地适应许多用例,正在选择它而不是以前的替代方法。

许多开发人员和团队 (包括我和我的团队) 已经依赖于 FastAPI 进行项目。

但是,仍然有许多改进和功能。

FastAPI 有着美好的未来。

你的帮助 是极大的赞赏。

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free