阅读 71

fastapi小技巧

1、定制文档生成:

    参见 fastapi/applycations.py 中的setup.  /docs 把所有的路径routes 都包含进去了。参考实现根据tag 实现文档生成。

    要先生成docs 需要的openapi_url。(其中get_openapi 是fastapi.openapi.utils 内部的函数)

@app.get("/api/docs/{tag}/openapi.json",include_in_schema=False)
async def docs_tag(tag:str) -> JSONResponse:
    openapi_schema = get_openapi(
                title=app.title,
                version=app.version,
                openapi_version=app.openapi_version,
                description=app.description,
                routes=[router for router in app.routes if  tag in getattr(router,"tags",[]) ],
                tags=app.openapi_tags,
                servers=app.servers,
            )
    return JSONResponse(openapi_schema)

    再定义tag 的前端页面部分:

@app.get("/docs/{tag}",include_in_schema=False)
async def get_documentation_tag_api(tag:str):
    return get_swagger_ui_html(openapi_url=f"/api/docs/{tag}/openapi.json", title="docs")

 

原文:https://www.cnblogs.com/xunhanliu/p/14950735.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐