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

问题描述 投票:2回答:1

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

  1. String nameIdentifier =“ {fisrtName} / {lastName}”

  2. String nameIdentifier =“ {fisrtName}”

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

我为上述路径使用一个控制器,如下所示

@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中完成的

谢谢

spring-boot swagger swagger-ui springdoc springdoc-openui
1个回答
1
投票

您可以使用@Hidden招摇注解或@Parameter(hidden = true)

© www.soinside.com 2019 - 2024. All rights reserved.