FastAPI如何快速生成swagger
时间: 2024-04-03 19:33:06 浏览: 203
FastAPI可以使用OpenAPI规范自动生成swagger文档,具体操作如下:
1. 安装Swagger UI和swagger相关依赖:`pip install fastapi[all]`
2. 在FastAPI应用程序中添加`from fastapi import FastAPI`和`from fastapi.openapi.utils import get_openapi`导入语句。
3. 在应用程序中定义一个`app`实例,并在其上定义路由操作。
4. 使用`@app.get("/<path:path>", include_in_schema=False)`装饰器将路径操作标记为不在文档中显示。
5. 创建一个函数`custom_openapi()`,以获取应用程序的OpenAPI规范。
6. 在`custom_openapi()`中,使用`get_openapi()`函数获取OpenAPI规范,然后将其更新为包含Swagger UI的规范。
7. 在主函数中,添加`app.openapi_schema = custom_openapi`以使FastAPI使用自定义OpenAPI规范。
8. 启动FastAPI应用程序,访问`http://localhost:8000/docs`可以查看生成的Swagger UI文档。
示例代码如下:
```
from fastapi import FastAPI
from fastapi.openapi.utils import get_openapi
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
@app.get("/hidden", include_in_schema=False)
async def hidden():
return {"message": "This endpoint will not show in the documentation."}
def custom_openapi():
if app.openapi_schema:
return app.openapi_schema
openapi_schema = get_openapi(
title="Custom Swagger UI with FastAPI",
version="1.0.0",
description="This is a custom OpenAPI schema for the FastAPI application.",
routes=app.routes,
)
openapi_schema["info"]["x-logo"] = {
"url": "https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png"
}
app.openapi_schema = openapi_schema
return app.openapi_schema
app.openapi = custom_openapi
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
```
阅读全文