FastAPI - @Schema(hidden=True) 尝试隐藏 swagger 文档上的架构部分时不起作用

Kev*_*n E 7 python swagger openapi fastapi

我试图隐藏 FastAPI 生成的 swagger 文档的整个模式部分。我已经检查了文档并尝试了此操作,但架构部分仍然显示。

    @Schema(hidden=True)
    class theSchema(BaseModel):
        category: str
Run Code Online (Sandbox Code Playgroud)

如何从返回的 swagger 文档中省略一个特定架构或整个架构部分。

docExpansion 似乎也不起作用。我缺少什么?

app = FastAPI(
    openapi_tags=tags_metadata,
    title="Documentation",
    description="API endpoints",
    version="0.1",
    docExpansion="None"
) 
Run Code Online (Sandbox Code Playgroud)

小智 10

swagger 有 UI 参数“defaultModelsExpandDepth”,用于控制模式部分中模型的视图。

可以在 FastApi 初始化时使用“swagger_ui_parameters”参数转发此参数。

app = FastAPI(swagger_ui_parameters={"defaultModelsExpandDepth": -1})
Run Code Online (Sandbox Code Playgroud)

价值观:

  • -1:模式部分隐藏
  • 0:模式部分关闭
  • 1:模式部分打开(默认)

更多选项可以在这里找到:https ://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/


ti7*_*ti7 9

include_in_schema=False在 args 中设置为FastAPI实例装饰器

app = FastAPI(...)

@app.get("/", include_in_schema=False)
async def root():
    ...
Run Code Online (Sandbox Code Playgroud)

  • 这将从文档中删除整个端点。我只想删除架构部分 (3认同)