gpt4 book ai didi

spring-boot - 如何使用 springdoc openapi 在 swagger ui 上有条件地忽略 PathVariable

转载 作者:行者123 更新时间:2023-12-02 02:58:28 24 4
gpt4 key购买 nike

我正在从 springfox 2.9.0 迁移到 springdoc-openapi-ui 1.2.33。我需要根据条件在 swagger ui 上显示或隐藏 PathVariable 。我有两条路径,如下所示

  1. 字符串 nameIdentifier = "{fisrtName}/{lastName}"

  2. 字符串 nameIdentifier = "{fisrtName}"

我根据要求传递上述 nameIdentifier 之一。

我对上述路径使用单个 Controller ,如下所示

@GetMapping(path = "persons/${nameIdentifier}/display")
public List<Person> getPersons(@PathVariable String fisrtName,
@IgnoreLastName @PathVariable Optional<String> lastName) {

}

在 springfox 中,我能够使用 docket.ignoredParameterTypes(IgnoreLastName.class) 实现它,如下所示。

@Bean
public Docket api() {

Docket docket;

docket = new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("go.controller")).paths(PathSelectors.any()).build()
.apiInfo(apiInfo());

if (!nameIdentifier.contains("lastName")) {
docket.ignoredParameterTypes(IgnoreLastName.class);
}
return docket;
}

但是在 springdoc open api 中我无法实现相同的目标。同样感谢您的帮助。编码是用java完成的

谢谢

最佳答案

您可以使用@Hidden swagger注释或@Parameter(hidden = true)

如果无法传递参数级别,可以全局设置:需要升级到springdoc-openapi-ui v1.3.0。

static {
SpringDocUtils.getConfig().addAnnotationsToIgnore(IgnoreLastName.class);
}

关于spring-boot - 如何使用 springdoc openapi 在 swagger ui 上有条件地忽略 PathVariable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60564053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com