1、简介

FastAPI是一个用于构建API的高效web框架,使用python3.6+,并基于标准的Python类型语法。

2、特性

  • 快速:可与NodeJS和Go比肩的极高性能(Starlette 与Pydantic)。是最快的python web框架之一
  • 高效编码:提高2-3倍开发速度;
  • 更少bug:减少约四成的人为导致的错误;
  • 智能:极佳的编辑器支持。自动补全能力强大,减少调试时间;
  • 简单:易于学习和使用,阅读文档的时间更短;
  • 简短:代码重复最小化。通过不同的参数声明实现丰富功能。
  • 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema。
2.1、基于开放标准
  • 用于创建 API 的 OpenAPI 包含了路径操作,请求参数,请求体,安全性等的声明。
  • 使用 JSON Schema (因为 OpenAPI 本身就是基于 JSON Schema 的)自动生成数据模型文档。
  • 经过了缜密的研究后围绕这些标准而设计。并非狗尾续貂。
  • 这也允许了在很多语言中自动生成客户端代码。
2.2、自动生成文档

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

python版的fastreport python fastapi_python

另外的 API 文档:ReDoc

python版的fastreport python fastapi_人工智能_02

2.3、简介

任何类型都有合理的默认值,任何和地方都有可选配置。所有的参数被微调,来满足你的需求,定义成你需要的 API。
但是默认情况下,一切都能“顺利工作”。

2.4、验证
  • 校验大部分(甚至所有?)的 Python 数据类型,包括:
  • JSON 对象 (dict).
  • JSON 数组 (list) 定义成员类型。
  • 字符串 (str) 字段, 定义最小或最大长度。
  • 数字 (int, float) 有最大值和最小值, 等等。
  • 校验外来类型, 比如:
  • URL.
  • Email.
  • UUID.
  • …及其他.

所有的校验都由完善且强大的 Pydantic 处理。

2.5、依赖注入

fastapi具有非常强大的依赖注入系统

  • 依赖也可以有依赖,可以创建一个层级或者“图”依赖;
  • 所有自动化处理都由框架完成;
  • 所有依赖关系都可以从请求中获取数据,并且增加了路径操作约束和自动文档生成;
  • 在依赖项中被定义的路径操作也会自动验证
  • 支持复杂的用户身份认证系统、数据库连接等;
  • 不依赖数据库、前端等;但是与他们的集成非常简单。