有没有可能只在Swagger UI中公开一些选定的端点,但通过直接HTTP调用使它们在服务器上不可用?
有@Operation(hidden=true)
不暴露Swagger用户界面中的端点,但仍然在服务器上可用。我只需要“反转行为”。
用例:我们通常禁止在生产中使用Swagger UI。我希望在开发期间有一些仅在Swagger UI中可用的端点用于测试目的。
版本:Sping Boot 2.6.2,springdoc-openapi-ui 1.6.3。
有没有可能只在Swagger UI中公开一些选定的端点,但通过直接HTTP调用使它们在服务器上不可用?
有@Operation(hidden=true)
不暴露Swagger用户界面中的端点,但仍然在服务器上可用。我只需要“反转行为”。
用例:我们通常禁止在生产中使用Swagger UI。我希望在开发期间有一些仅在Swagger UI中可用的端点用于测试目的。
版本:Sping Boot 2.6.2,springdoc-openapi-ui 1.6.3。
1条答案
按热度按时间jvlzgdj91#
使用案例:
这种(需求类型)的“最灵活”的解决方案可能是配置文件!
我们可以:
从我们的主配置中排除openapi配置(默认配置文件)(因为它是被禁止的)。
然后我们就介绍:
不幸的是,我们只能在bean方法/类上使用
@Profile
,要按“请求Map”(方法)使用它,我们必须复制并隔离控制器:其中一个:
和原始控制器,所述原始控制器具有:
我们必须相互排除它们(
"documented"
对"!documented"
),因为否则(路径)Map将不明显。这样,在生产环境中运行我们的应用程序(没有“文档化”配置文件)将:
在dev/loaclly中运行我们的应用,我们将设置
spring.profiles.active=documented
,springdoc将: