Search code examples
pythonswaggeropenapifastapi

FastAPI - @Schema(hidden=True) not working when trying to hide the schema section on swagger docs


I'm trying to hide the entire schemas section of the FastAPI generated swagger docs. I've checked the docs and tried this but the schema section still shows.

    @Schema(hidden=True)
    class theSchema(BaseModel):
        category: str

How do I omit one particular schema or the entire schemas section from the returned swagger docs.

docExpansion does not appear to work either. What am I missing?

app = FastAPI(
    openapi_tags=tags_metadata,
    title="Documentation",
    description="API endpoints",
    version="0.1",
    docExpansion="None"
) 

Solution

  • swagger has the UI parameter "defaultModelsExpandDepth" for controlling models' view in the schema section.

    This parameter can be forwarded using "swagger_ui_parameters" parameter on FastApi initialization.

    app = FastAPI(swagger_ui_parameters={"defaultModelsExpandDepth": -1})
    

    Values:

    • -1: schema section hidden
    • 0: schema section is closed
    • 1: schema section is open (default)

    More options can be found here: https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/