美文网首页
局域网环境生成fastapi接口文档的方法

局域网环境生成fastapi接口文档的方法

作者: yytester | 来源:发表于2020-12-28 16:00 被阅读0次

    fastapi自动生成的接口文档,基于Swagger UI, 但是在内部局域网环境无法访问cdn,因此无法自动生成docs接口文档.

    如果要在内网环境生成docs接口文档,需要修改示例代码如下:

    from fastapi import FastAPI
    import os
    from fastapi.openapi.docs import (
        get_redoc_html,
        get_swagger_ui_html,
        get_swagger_ui_oauth2_redirect_html,
    )
    from fastapi.staticfiles import StaticFiles
    
    app = FastAPI(docs_url=None, redoc_url=None)
    
    
    root = os.path.abspath(os.path.join(os.path.basename(__file__), "../.."))
    print(root)
    
    app.mount("/static", StaticFiles(directory=f"{root}/static"), name="static")
    
    
    @app.get("/docs", include_in_schema=False)
    async def custom_swagger_ui_html():
        return get_swagger_ui_html(
            openapi_url=app.openapi_url,
            title=app.title + " - Swagger UI",
            oauth2_redirect_url=app.swagger_ui_oauth2_redirect_url,
            swagger_js_url="/static/swagger-ui-bundle.js",
            swagger_css_url="/static/swagger-ui.css",
        )
    
    
    @app.get(app.swagger_ui_oauth2_redirect_url, include_in_schema=False)
    async def swagger_ui_redirect():
        return get_swagger_ui_oauth2_redirect_html()
    
    
    @app.get("/redoc", include_in_schema=False)
    async def redoc_html():
        return get_redoc_html(
            openapi_url=app.openapi_url,
            title=app.title + " - ReDoc",
            redoc_js_url="/static/redoc.standalone.js",
        )
    
    
    @app.get(
        "/users/{username}",
        tags=["test"],
        name="TESTROUTER",
        description="TESTROUTER",
    )
    async def read_user(username: str):
        return {"message": f"Hello {username}"}
    
    
    if __name__ == '__main__':
        import uvicorn
    
        uvicorn.run(app, host="127.0.0.1", port=8000)
    
    

    注: 需要把 swagger-ui.cssswagger-ui-bundle.js 放到static文件夹下, 此文件夹放在上面示例代码的上一级目录下.


    Flutter 写的app, 需要源码可以私信~~

    相关文章

      网友评论

          本文标题:局域网环境生成fastapi接口文档的方法

          本文链接:https://www.haomeiwen.com/subject/hmctoktx.html