推荐答案
在 FastAPI 中,OpenAPI 和 Swagger UI 是自动集成的。FastAPI 会自动生成 OpenAPI 规范文档,并通过 Swagger UI 提供交互式的 API 文档。以下是如何使用它们的步骤:
安装 FastAPI:首先确保你已经安装了 FastAPI 和 Uvicorn(用于运行 FastAPI 应用)。
pip install fastapi uvicorn
创建 FastAPI 应用:编写一个简单的 FastAPI 应用。
-- -------------------- ---- ------- ---- ------- ------ ------- --- - --------- ------------- --- ------------ ------ --------- -------- ---------------------------- --- ------------------ ---- -- --- - ------ ------ ----------- -------- ---- --
运行应用:使用 Uvicorn 运行 FastAPI 应用。
uvicorn main:app --reload
访问 Swagger UI:在浏览器中打开
http://127.0.0.1:8000/docs
,你将看到自动生成的 Swagger UI 文档。访问 OpenAPI 规范:在浏览器中打开
http://127.0.0.1:8000/openapi.json
,你将看到自动生成的 OpenAPI 规范文档。
本题详细解读
OpenAPI 规范
OpenAPI 是一种用于描述 RESTful API 的规范。它允许你以机器可读的格式定义 API 的结构、请求和响应。FastAPI 会自动根据你的代码生成 OpenAPI 规范文档。
Swagger UI
Swagger UI 是一个基于 OpenAPI 规范的交互式 API 文档工具。它允许开发者在浏览器中查看和测试 API。FastAPI 自动集成了 Swagger UI,因此你无需额外配置即可使用它。
自动生成文档
FastAPI 通过分析你的代码中的路由、参数、请求体和响应模型,自动生成 OpenAPI 规范文档。这些文档可以通过 Swagger UI 进行可视化展示。
自定义文档
虽然 FastAPI 自动生成文档,但你也可以通过以下方式自定义文档:
API 标题和描述:在创建
FastAPI
实例时,可以通过title
和description
参数设置 API 的标题和描述。app = FastAPI( title="My API", description="This is a sample API", )
路由描述:在路由函数中使用
summary
和description
参数来添加路由的描述。@app.get("/items/{item_id}", summary="Get an item", description="Retrieve an item by its ID") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}
响应模型:通过
response_model
参数指定响应模型,Swagger UI 将自动显示响应结构。-- -------------------- ---- ------- ---- -------- ------ --------- ----- ---------------- -------- --- -- --- ---------------------------- -------------------- --- ------------------ ---- -- --- - ------ ------ ----------- -------- ---- --
通过这些方式,你可以进一步丰富和定制 FastAPI 自动生成的 OpenAPI 和 Swagger UI 文档。