使用Spring Boot按需求方法顺序自定义Swagger端点

时间:2019-01-07 15:10:37

标签: java spring-boot swagger-2.0

我正在使用swagger 2.9.2版本,并且我想显示端点 获取,发布,放置,修补,删除。 我提到了这篇文章 Swagger API Operations Ordering 必须与我的要求类似,并且它以升序工作,但我想按上述顺序显示端点。

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors
                        .basePackage("com.xxx.xxx.controller"))
                .paths(PathSelectors.any()).build()
                .useDefaultResponseMessages(false)
                .apiInfo(metaData());
    }   
    private ApiInfo metaData() {
        return new ApiInfoBuilder()
                .title("test data")
                .description("test data")
                .version("1.0.0")
                .build();
    }   
    @Bean
    UiConfiguration uiConfig() {
        return UiConfigurationBuilder
                .builder()
                .operationsSorter(OperationsSorter.METHOD)
                .build();
    }
}

1 个答案:

答案 0 :(得分:0)

应该起作用的是这样的

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            ...
            .build()
            .operationOrdering(new Ordering<Operation>() {
                @Override
                public int compare(final Operation left, final Operation right) {
                    // Here you have all the information about the operations, 
                    // such as left.getMethod(), right.getMethod()
                    // and you may implement the sorting on your own.
                    // Return +1, 0 or -1 based on the expected order.
                }
            });
}

但是,根据您提供的https://stackoverflow.com/a/52760718/2886891链接,仍然可能存在错误:

  

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