Spring Boot Swagger API操作订购

hjzp0vay  于 2022-12-18  发布在  Spring
关注(0)|答案(4)|浏览(135)

如何按方法的字母顺序对操作进行排序,例如DELETEGETPOSTPUT
我读过这篇文章,但它是在HTML中,但在我的情况下,我已经集成了Swagger到Sping Boot ,所以我需要排序它时,创建一个Docket。
Sort API methods in Swagger UI
然后我在Docket中注意到了这个方法operationOrdering(),但是我仍然不能使它工作。

nlejzf6q

nlejzf6q1#

我使用的是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),因此该操作不起作用。

eanckbw9

eanckbw92#

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

  • springdoc.swagger-ui.标签排序器=alpha
  • springdoc.swagger-ui.操作-分类器=alpha
gg0vcinb

gg0vcinb3#

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

我用的是Sping Boot 2.2.0.M6,Swagger UI 2.9.2

sbtkgmzw

sbtkgmzw4#

springdoc.swagger-ui.operations-sorterv3/api-docs中不起作用。
对于v3/api-docs中的字母顺序,请用途:

springdoc.writer-with-order-by-keys=true

相关问题