赞
踩
fastapi提供了两种查看交互式API文档的方式,一种是由Swagger UI提供,另一种是由ReDoc提供。
通过交互式API文档,可以看到自定义的API的说明,并且可以利用其提供的交互方式,进行接口测试。
在默认情况下面打开交互式API文档的路径分别是:
交互式API文档提供者 | 打开地址 |
---|---|
Swagger UI | http://host:port/docs |
ReDoc | http://host:port/redoc |
前提:在fastapi中定义了接口,并运行了服务器。
由于两者提供的交互式API文档功能基本相同,此处仅针对Swagger UI提供的交互式API文档进行介绍和说明。
初始界面介绍:
接口界面介绍:
修改信息区内容,主要是通过在FastAPI实例对象中,通过修改对应的形参进行修改。
信息区内容 | FastAPI中形参 |
---|---|
标题内容 | title |
版本号 | version |
打开API JSON格式地址 | openapi_url |
打开Swagger UI交互文档地址 | docs_url |
打开ReDoc交互文档地址 | redoc_url |
描述信息 | description |
# 演示修改信息区的内容
app = FastAPI(title="引用请求体参数API",
version="1.0.0",
description="这里描述了引用请求体参数的三种方式的API",
openapi_url="/api/api.json",
docs_url="/swageui",
redoc_url="/redocui")
修改后效果:
接口总览区信息是根据我们创建的路径装饰器生成的。
在fastapi中get,post等请求方法中都存在着相应的参数来控制着信息。
接口总览区内容 | 请求方法中形参 |
---|---|
组别 | tags |
摘要 | summary |
访问路径 | path |
# 演示通过修改请求方法的形参修改交互文档显示的内容
@app.post("/items",tags=["BaseModel"],summary="通过继承BaseModel引用请求体数据")
async def create_item(item:Item):
return item
from fastapi import Body
@app.put("/items",tags=["BaseModel"],summary="通过Body函数引用请求体数据")
async def update_item(name:str=Body(),tax:float=Body()):
return {"name":name,"tax":tax}
修改后显示界面:
修改接口界面中信息主要通过Path,Query,Body和Field中的形参进行修改的。
只有接口的说明是在路径修饰器的请求方法形参中修改。
接口界面信息 | 对应的形参 |
---|---|
接口摘要 | 路径装饰器中请求方法中的summary形参 |
接口描述 | 路径装饰器中请求方法中的description形参 |
描述 | Path,Query,Body和Field中的description参数 |
样例 | Path,Query,Body和Field中的example或examples参数 |
是否废弃 | Path,Query,Body和Field中的deprecated参数 |
# 演示接口界面信息修改
from fastapi import Query
@app.get("/items",description="这个是一个查询参数引用的示例API",summary="查询一个商品")
async def read_items(
q:Union[str,None] = Query(default=None,
title="Query String",
min_length=3,
description="Query string for the items to search in the database that have a good match",
example="query",
deprecated=True)
):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
演示结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。