前面的Fastapi用户指南已经可以满足开发简单的接口了,但是开发的接口只有自己知道,为了项目组的前端和测试都能知道,Fastapi框架引入了Swagger UI来进行展示。
from fastapi import FastAPI
app = FastAPI(
title="Fastapi接口文档",
version="0.0.1",
description="接口文档",
terms_of_service="https://www.baidu.com",
docs_url=None,
redoc_url=None,
contact={
"name": "访问百度",
"url": "http://www.baidu.com/",
"email": "debug@163.com",
}
)
参数注释 :
- title:名称(浏览器标签页的title)
- version:版本号
- description:描述信息
- terms_of_service:配置一个外链跳转,界面显示是terms_of_service
- docs_url:docs文档界面
- redoc_url:偏向元数据的文档界面
- contact:设置一个外链和邮箱
上述是一些常规的配置信息,现在在原来的基础上增加标签元数据配置 :
from fastapi import FastAPI from sc_app.docs import tags_metadata app = FastAPI( openapi_tags=tags_metadata, )
然后我们看下tags_metadata是什么样子的(这里我是单独新建了一个.py文件来存储tags_metadata) :
tags_metadata = [
{
"name": "用户模块",
"description": ".",
"externalDocs": {
"description": "外链",
"url": "https://www.baidu.com/",
},
},
{
"name": "首页模块",
"description": ".",
"externalDocs": {
"description": "外链",
"url": "https://www.baidu.com/",
},
}
]
最后,不要忘记在接口路径中定义标签,取tags_metadata中name的value值(示例:tag=["首页模块"]) :
import os
import uvicorn
from sc_app.docs import tags_metadata
from fastapi import FastAPI, Depends
from routers import register, login
from dependencies import verify_token
from dependencies import verify_x_token
app = FastAPI(
title="Fastapi接口文档",
version="0.0.1",
description="接口文档",
terms_of_service="https://www.baidu.com",
openapi_tags=tags_metadata,
contact={
"name": "访问百度",
"url": "http://www.baidu.com/",
"email": "debug@163.com",
},
dependencies=[Depends(verify_x_token)]
)
app.include_router(router=register.router, tags=["用户模块"])
app.include_router(router=login.router, tags=["用户模块"])
@app.get("/index/", tags=["首页模块"], dependencies=[Depends(verify_token)], summary="首页接口", description="首页")
def index():
"""
首页
:return:
"""
return {"message": "Welcome to the home page !"}
文档默认的的三个urls,openapi_url要是默认值,要么给指定路径,不可以给openapi_url=None,否则就会访问不了文档页面,这是因为所有的数据都是基于openapi_url来生成的。
from fastapi import FastAPI app = FastAPI( docs_url=None, redoc_url=None, openapi_url="/api/v1/openapi.json" )
- docs_url或redoc_url如果给None值则是禁用了该方式访问(docs_url服务于/docs,redoc_url服务于/redoc)。
例如:我们也可以给文档连接修改指定路径,并禁用redoc_url。
from fastapi import FastAPI app = FastAPI( docs_url=/document, redoc_url=None, )
今天先聊到这里吧,以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的一键 3 连【 点赞、收藏、分享 】哟,谢谢!
未完成,待续……
一直在努力,希望你也是!
微信搜索公众号:就用python



