当前位置:   article > 正文

fastapi_No.5_交互式API文档_fastapi ui界面地址

fastapi ui界面地址

交互式文档说明

fastapi提供了两种查看交互式API文档的方式,一种是由Swagger UI提供,另一种是由ReDoc提供。
通过交互式API文档,可以看到自定义的API的说明,并且可以利用其提供的交互方式,进行接口测试。

打开方法

在默认情况下面打开交互式API文档的路径分别是:

交互式API文档提供者打开地址
Swagger UIhttp://host:port/docs
ReDochttp://host:port/redoc

前提:在fastapi中定义了接口,并运行了服务器。

Swagger UI提供的交互式API文档界面介绍

由于两者提供的交互式API文档功能基本相同,此处仅针对Swagger UI提供的交互式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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

修改后效果:
修改后效果

修改接口总览区信息

接口总览区信息是根据我们创建的路径装饰器生成的。
在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}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

修改后显示界面:
修改后显示界面

修改接口界面信息

修改接口界面中信息主要通过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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

演示结果:
演示结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/886099?site
推荐阅读
相关标签
  

闽ICP备14008679号