FastAPI 是一个高性能 Web 框架,用于构建 API。
主要特性:
- 快速:非常高的性能,与 NodeJS 和 Go 相当
- 快速编码:将功能开发速度提高约 200% 至 300%
- 更少的错误:减少约 40% 的人为错误
- 直观:强大的编辑器支持,自动补全无处不在,调试时间更少
- 简易:旨在易于使用和学习,减少阅读文档的时间。
- 简短:减少代码重复。
- 稳健:获取可用于生产环境的代码,具有自动交互式文档
- 基于标准:基于并完全兼容 API 的开放标准 OpenAPI 和 JSON Schema
下面,让我们创建一个超级简单的fastapi项目。
一、创建fastapi项目
- 1、创建main.py文件
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def hello():
return {"message": "Hello World."}
@app.get("/articel/{id}")
def read_item(id: int, q: str = None):
return {"id": id, "q": q}
如果你的代码需要用到异步async/await,使用async def,如下所示:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def hello():
return {"message": "Hello World!"}
@app.get("/article/{id}")
async def read_item(id: int, q: str = None):
return {"id": id, "q": q}
二、运行项目
- 运行服务器:
uvicorn main:app --reload
命令uvicorn main:app –reload指的是:
- main:main.py文件(
- app:app = FastAPI() 在main.py内创建的对象。
- –reload:在代码更改后重新启动服务器。 只有在开发时才使用这个参数。
三、检查项目
在你的浏览器打开网址:http://127.0.0.1:8000
你将看见json格式的响应数据:
{"message":"Hello Word!"}
您已经创建了一个API:
- url: / 和 / article/ {id},两个url都可以接收HTTP请求。
- / 和 / article / {id} 都采用GET方式的HTTP请求方法
- / article / {id}包含路径参数id,格式为int
- / article / {id}还包含一个可选的参数q,格式为str
四、交互的API文档
现在进入 http://127.0.0.1:8000/docs.
你将会看见自动的交互式API文档,该文档由Swagger UI提供。
五、备用API文档
现在,转到http://127.0.0.1:8000/redoc
您将看到备用自动文档(由ReDoc提供)。
六、下载API接口文档
如果你需要提供你的API接口,那么只需要一行命令,即可下载api文件,一般保存为api.json
curl -o api.json http://127.0.0.1:8000/openapi.json