Swagger API操作订购

时间:2017-01-23 07:46:20

标签: java spring-boot swagger springfox

如何按字母顺序按方法对操作进行排序,例如删除获取发布 PUT

我已经阅读过这篇文章,但它是用HTML格式的,但就我而言,我已将Swagger集成到Spring Boot中,因此我需要在创建Docket时对其进行排序。

Sort API methods in Swagger UI

然后我在Docket中注意到了这个方法operationOrdering(),但我仍然无法使它工作。

3 个答案:

答案 0 :(得分:4)

我正在使用Springfox 2.8.0版,以下代码段适用于我记录的API:

@Bean
UiConfiguration uiConfig() {
    return UiConfigurationBuilder
            .builder()
            .operationsSorter(OperationsSorter.METHOD)

            ...

            .build();
}

有2个可能的值:

  • OperationsSorter.ALPHA-按路径
  • 的字母顺序对API端点进行排序
  • OperationsSorter.METHOD-通过方法
  • 按字母顺序对API端点进行排序

OperationsSorter.METHOD是您要寻找的。


替代,使用operationOrdering()

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .select()
        .apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.any())
        .build()

        ...

        .operationOrdering(new Ordering<Operation>() {
            @Override
            public int compare(Operation left, Operation right) {
                return left.getMethod().name().compareTo(right.getMethod().name());
            }
        })
}

但是,由于Springfox中的一个错误似乎仍处于活动状态(Operation ordering is not working),因此无法正常工作。

答案 1 :(得分:1)

@Bean
public UiConfiguration uiConfig() {
    return UiConfigurationBuilder
            .builder()
            .operationsSorter(OperationsSorter.METHOD)
            .build();
}

这对我有用。我正在使用Spring Boot 2.2.0.M6,Swagger UI 2.9.2

答案 2 :(得分:1)

对于 Spring Boot 2.4OpenAPIapplication.properties 中的以下属性可能会引起关注:

  • springdoc.swagger-ui.tagsSorter=alpha
  • springdoc.swagger-ui.operations-sorter=alpha