Java 招摇过市API操作排序

Java 招摇过市API操作排序,java,spring-boot,swagger,springfox,Java,Spring Boot,Swagger,Springfox,如何按字母顺序对操作排序,例如删除,获取,发布,放置 我读过这篇文章,但它是HTML的,但在我的例子中,我已经将Swagger集成到SpringBoot中,所以我需要在创建摘要时对它进行排序 然后我注意到Docket中的这个方法operationOrdering(),但我仍然无法让它工作。我使用的是Springfox 2.8.0版,下面的代码片段适用于我的文档化API: @Bean UiConfiguration uiConfig() { return UiConfigurationB

如何按字母顺序对操作排序,例如删除获取发布放置

我读过这篇文章,但它是HTML的,但在我的例子中,我已经将Swagger集成到SpringBoot中,所以我需要在创建摘要时对它进行排序


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

我使用的是Springfox 2.8.0版,下面的代码片段适用于我的文档化API:

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

            ...

            .build();
}
有两个可能的值:

  • OperationsSorter.ALPHA
    -按路径的字母顺序对API端点进行排序
  • OperationsSorter.METHOD
    -按方法对API端点按字母顺序排序
操作分拣机。方法
是您需要的


使用
operationOrdering()
的替代方法

@Bean
公开摘要api(){
返回新摘要(DocumentationType.SWAGGER_2)
.选择()
.api(RequestHandlerSelectors.any())
.path(路径选择器.any())
.build()
...
.操作订购(新订购(){
@凌驾
公共整数比较(操作左、操作右){
返回left.getMethod().name().compareTo(right.getMethod().name());
}
})
}
但是,这不起作用,因为Springfox中的一个bug似乎仍然处于活动状态()


这对我有用。我将Spring Boot 2.2.0.M6、Swagger UI 2.9.2

Spring Boot 2.4OpenAPI一起使用应用程序中的以下属性。属性可能会引起兴趣:

  • springdoc.swagger用户界面。标记器=alpha
  • springdoc.swagger用户界面。操作分拣机=alpha

@DanielHári你是说
OperationSorter
还是其他方法?两者都不起作用,它会按url对所有操作进行排序。@DanielHári我在我的项目中使用Springfox 2.9.2版,
OperationSorter
方法对我有效。
ALPHA
方法
。无法复制。这是我的配置不起作用:哇。谢谢这对我有用。
@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());
            }
        })
}
@Bean
public UiConfiguration uiConfig() {
    return UiConfigurationBuilder
            .builder()
            .operationsSorter(OperationsSorter.METHOD)
            .build();
}