98k星的Python API开发框架,开发效率提升200%

fastapi/fastapi是GitHub上的Python web框架项目,累计获得98028个Star。

正文顶部截图

README区域截图

FastAPI基于标准Python类型提示开发,用于构建API接口。它的性能与NodeJS、Go水平相当,属于速度最快的Python框架之一。

使用FastAPI开发功能的速度比普通框架提升200%到300%,同时可以减少约40%的人为开发错误。它支持编辑器自动补全,减少调试时间。框架设计符合用户使用习惯,降低文档阅读成本。

FastAPI的代码重复率低,单个参数声明可以对应多个功能。生成的代码可直接用于生产环境,自带交互式API文档。它完全兼容OpenAPI和JSON Schema等API开放标准。

微软、Uber、Netflix、Cisco等企业都在生产环境中使用FastAPI。微软团队将其用于机器学习服务开发,部分功能集成到Windows和Office产品中。Uber用它搭建REST服务提供预测功能。Netflix的危机管理编排框架Dispatch基于FastAPI开发。Cisco将其作为API优先开发战略的核心组件。

FastAPI依赖Starlette和Pydantic两个库。Starlette负责处理web相关功能,Pydantic负责数据校验和转换。

安装FastAPI可以使用pip命令,需要Python3.8及以上版本:

pip install "fastapi[standard]"

使用时只需创建main.py文件,写入少量代码即可完成API开发:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}

启动服务使用fastapi dev命令,默认运行在http://127.0.0.1:8000。启动后访问/docs路径可以看到自动生成的交互式API文档,支持在线调试接口。访问/redoc路径可以查看另一种样式的文档界面。

FastAPI支持参数校验功能,自动检查路径参数、查询参数和请求体的类型是否符合要求。如果参数错误,会返回清晰的错误提示。它自动处理输入输出数据的格式转换,支持JSON、路径参数、查询参数、Cookie、Header、表单、文件等多种数据类型。

框架自带依赖注入系统,支持OAuth2的JWT令牌认证和HTTP Basic认证。它可以处理深层嵌套的JSON对象,支持GraphQL集成,还提供WebSocket、CORS、Cookie Sessions等额外功能。

FastAPI支持部署到任意云服务商,官方也提供FastAPI Cloud托管服务,用户可以通过fastapi deploy命令一键部署应用。

开源地址:https://github.com/tiangolo/fastapi

应用。

开源地址:https://github.com/tiangolo/fastapi

更多推荐