栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python:Fastapi - 元数据和文档 URL

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python:Fastapi - 元数据和文档 URL

前面的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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942881.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号