java 如何更改Swagger UI中的默认组/规格?

tzcvj98z  于 2022-12-25  发布在  Java
关注(0)|答案(2)|浏览(191)

我的项目中的Swagger文档有多个组。每个组都有一个Docket,并且端点(每个组的成员)都用自定义注解标记。例如,下面是authentication组的Docket

@Bean
public Docket authenticationApis() {

    return new Docket(DocumentationType.SWAGGER_2)
            .groupName("authentication")
            .useDefaultResponseMessages(false)
            .select()
            .apis(RequestHandlerSelectors.withMethodAnnotation(AuthenticationApiGroup.class))
            .paths(PathSelectors.any())
            .build()
            .apiInfo(apiInfo())
            .securitySchemes(Collections.singletonList(securityScheme()))
            .securityContexts(Collections.singletonList(securityContext()));
}

还有一个(默认)Docket用于所有可用的端点。问题是,当我调用文档URL .../swagger-ui.html时,Swagger UI默认加载最顶层的组。在我的情况下,它是authentication组,因为组是按字母顺序排序的。所需的行为是将default组作为默认API组加载。我该如何实现呢?

我尝试用.groupName("all")命名默认的Docket,这样它就成为最顶层的组(allauthentication),但是这个解决方案有点“脏”,在这种情况下,文档将有两个重复的组(alldefault)。
Springfox 2.9.2用于本项目。

tv6aics1

tv6aics11#

我的快速和肮脏的黑客:

  • 我在前面加上“@”,使某个组位于列表的第一位(因此是默认值)
  • 我在前面加上“~”使一个组位于列表的最后
slsn1g29

slsn1g292#

在单据中使用urls.primaryName参数:https://github.com/swagger-api/swagger-ui/blob/v3.17.1/docs/usage/configuration.md#parameters

相关问题