Swagger API Operations Ordering

后端 未结 2 696
野趣味
野趣味 2020-12-20 14:37

How do I sort my operation by method alphabetically e.g. DELETE, GET, POST, PUT.

I have read from

相关标签:
2条回答
  • 2020-12-20 15:21

    I am using Springfox version 2.8.0 and following code snippet works for my documented API:

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

    There are 2 possible values:

    • OperationsSorter.ALPHA - sorts API endpoints alphabetically by path
    • OperationsSorter.METHOD - sorts API endpoints alphabetically by method

    OperationsSorter.METHOD is what you are looking for.


    Alternative by using 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());
                }
            })
    }
    

    However, this does not work because of a bug in Springfox which seems to be still active (Operation ordering is not working).

    0 讨论(0)
  • 2020-12-20 15:37
    @Bean
    public UiConfiguration uiConfig() {
        return UiConfigurationBuilder
                .builder()
                .operationsSorter(OperationsSorter.METHOD)
                .build();
    }
    

    This works for me. I'm using Spring Boot 2.2.0.M6, Swagger UI 2.9.2

    0 讨论(0)
提交回复
热议问题