如何在OpenAPI api-docs / swagger-ui中动态禁用方法端点

问题描述

我有一个CRUD controller,并且我希望根据位于POST上的属性的值对api-docsswagger-ui隐藏一个application.yml.方法希望对hom和prod环境隐藏此方法,仅在dev环境中可用。这是一种用于模拟一些对象以直接进行测试的方法,我不希望将其显示给任何其他方。

在此实现中,我正在使用OpenApi v3。

@PostMapping
@Operation(summary = "Post METHOD")
fun createExample(...): ReturnType {
    return service.save(object)
}

@Hidden似乎不符合我的需求,因为我不得不直接声明它是真还是假,并且我想根据属性值将其隐藏,以便可以在环境之间进行更改

我考虑过@Profile,但由于我们在项目定义中也不使用Springboot的标准配置文件,因此也不适合。

我已经有一个设置了@Value("should.disable.method")的变量,只要该属性设置为true,该变量就拒绝持久化对象,并且我希望具有相似逻辑的东西(基于相同的属性)避免完全显示此方法在swagger-ui和api-docs json配置中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)