如何在FastAPI中使用Swagger UI展示API文档

1. 简介

FastAPI是一种现代、快速(高性能)的Web框架,用于构建API。它是基于Python 3.6+类型提示功能的,支持异步请求和响应,并具有快速设计能力,以提高开发人员的开发速度。

Swagger UI是一种用于可视化和交互式文档的开源工具。它可以自动地为API生成和展示文档,使得API的开发人员和终端用户可以更方便地理解和操作API。本文将介绍如何在FastAPI中使用Swagger UI展示API文档,使API更加易于使用和理解。

2. 安装FastAPI和uvicorn

在开始之前,我们需要先安装FastAPI和uvicorn。FastAPI使用uvicorn作为HTTP服务器,uvicorn基于asyncio和Python 3.6+类型提示功能实现高性能。

可以使用pip安装FastAPI和uvicorn:

pip install fastapi uvicorn

3. 编写代码

接下来,我们可以开始编写FastAPI应用程序并展示API文档。首先,创建一个文件main.py并输入以下代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")

async def root():

return {"message": "Hello World"}

这段代码定义了一个FastAPI应用程序,它具有一个名为“root”的路由,对应网站的根目录/。它返回一个JSON格式的响应,其中包含一条消息“Hello World”。

4. 运行应用程序并查看API文档

要运行FastAPI应用程序,请输入以下命令:

uvicorn main:app --reload

此命令将启动一个uvicorn服务器,并告诉它从名为main.py的文件中加载应用程序对象app。--reload参数指定服务器在代码更改时重新加载应用程序。

现在,我们可以在浏览器中访问http://localhost:8000/docs,看到自动生成的Swagger UI文档。Swagger UI的页面上将列出所有的路由和模型,以及有关它们的详细信息。

5. 定义路由和模型

现在,我们将添加一些路由和模型来定义API的功能和数据模型。

from fastapi import FastAPI

from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):

name: str

price: float

is_offer: bool = None

@app.get("/")

async def root():

return {"message": "Hello World"}

@app.post("/items/")

async def create_item(item: Item):

return item

@app.get("/items/{item_id}")

async def read_item(item_id: int, q: str = None):

return {"item_id": item_id, "q": q}

此代码模块添加了三个路由:

/:一个GET路由,返回一个JSON格式的响应,其中包含一条消息“Hello World”。

/items/:一个POST路由,它需要一个名为item的Item模型作为请求正文,并返回该模型作为响应正文。

/items/{item_id}:一个GET路由,它需要一个名为item_id的int参数,并可选的一个query参数q作为查询参数。它返回一个JSON格式的响应,其中包含一个名为item_id的参数和名为q的查询参数。

要查看路由的详细信息,请运行FastAPI应用程序并访问http://localhost:8000/docs。

6. 结论

本文介绍了如何在FastAPI中使用Swagger UI展示API文档,使得API更加易于使用和理解。我们还展示了如何定义路由和模型来定义API的功能和数据模型。通过使用FastAPI和Swagger UI,我们可以快速构建功能强大的API,并使它们易于理解和使用。

后端开发标签