FastAPI 学习之路(三十七)元数据和文档 URL

实现前的效果

那么如何实现呢,第一种方式如下:

from routers.items import item_router
from routers.users import user_router

"""
自定义FastApi应用中的元数据配置
    Title:在 OpenAPI 和自动 API 文档用户界面中作为 API 的标题/名称使用。
    Description:在 OpenAPI 和自动 API 文档用户界面中用作 API 的描述。
    Version:API 版本,例如 v2 或者 2.5.0。
"""

from fastapi import FastAPI


# 实现方式1
app = FastAPI(
    title="这是测试Title",
    description="这是测试description",
    version="这是测试version"
)

app.include_router(user_router, prefix="/u", tags=["users"])
app.include_router(item_router, prefix="/i", tags=["items"])

实现后的效果

你也可以使用参数 openapi_tags,为用于分组路径操作的不同标签添加额外的元数据。

它接受一个列表,这个列表包含每个标签对应的一个字典。

每个字典可以包含:

  • name(必要):一个 str,它与路径操作和 APIRouter 中使用的 tags 参数有相同的标签名。
  • description:一个用于简短描述标签的 str。它支持 Markdown 并且会在文档用户界面中显示。
  • externalDocs:一个描述外部文档的 dict:
    • description:用于简短描述外部文档的 str。
    • url(必要):外部文档的 URL str。 

使用方式

from routers.items import item_router
from routers.users import user_router

"""
自定义FastApi应用中的元数据配置
    Title:在 OpenAPI 和自动 API 文档用户界面中作为 API 的标题/名称使用。
    Description:在 OpenAPI 和自动 API 文档用户界面中用作 API 的描述。
    Version:API 版本,例如 v2 或者 2.5.0。
"""

from fastapi import FastAPI

# 实现方式2
tags_metadata = [
    {
        "name": "这类似第一种方式的title",
        "description": """这类似第一种方式的description"""
    },
    {
        "name": "items",
        "description": "创建和查找items",
        "externalDocs": {
            "description": "这是使用详细文档",
            "url": "http://localhost:8000/i/items"
        }
    }
]

app = FastAPI(
    openapi_tags=tags_metadata
)

app.include_router(user_router, prefix="/u", tags=["users"])
app.include_router(item_router, prefix="/i", tags=["items"])

实现效果如下,和第一种方式有些许区别

自定义设置文档url地址

app = FastAPI(
    openapi_tags=tags_metadata,
    docs_url="/openapi",
    redoc_url="/apidoc"
)

你可以配置两个文档用户界面,包括:

  • Swagger UI:服务于 /docs。
    • 可以使用参数 docs_url 设置它的 URL。
    • 可以通过设置 docs_url=None 禁用它。
  • ReDoc:服务于 /redoc。
    • 可以使用参数 redoc_url 设置它的 URL。
    • 可以通过设置 redoc_url=None 禁用它。

我们一直没有看过redoc,我们今天看下

 

当然我们也可以禁用,可以根据我们的需求来。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值