我试图隐藏FastAPI生成的swagger文档的整个schema部分。我已经检查了文档并尝试了此操作,但schema部分仍然显示。
@Schema(hidden=True)
class theSchema(BaseModel):
category: str
如何从返回的swagger文档中省略一个特定的schema或整个schema部分。
docExpansion似乎也不起作用。我错过了什么?
app = FastAPI(
openapi_tags=tags_metadata,
title="Documentation",
description="API endpoints",
version="0.1",
docExpansion="None"
)
4条答案
按热度按时间wqsoz72f1#
swagger具有UI参数"defaultModelsExpandDepth",用于控制schema部分中的模型视图。
可在FastApi初始化时使用"swagger_ui_parameters"参数转发此参数。
数值:
更多选项可在此处找到:https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/
kxeu7u2r2#
将args中的
include_in_schema=False
设置为FastAPI
示例装饰器t1qtbnec3#
我不确定回答我自己的问题是否能得分,但如果有人想知道,这个问题的解决方法是将swagger页面加载到iframe中,然后使用js在该文档的iframe中隐藏所需的元素。
s5a0g9ez4#
我有一个类似的需求,我想排除某些模式,包括“Enum”模式,唯一的方法是生成定制的OpenAPI模式,如FastAPI docs中所述。
首先,使用“schema_extra”pydantic模型配置在生成的json中添加一个隐藏字段,这可以在pydantic's documentation中找到。
然后,您可以使用生成自定义OpenAPI架构,
最后,将此自定义函数分配给FastAPI应用的openapi函数,如下所示-
希望这个有用。