How do I sort my operation by method alphabetically e.g. DELETE, GET, POST, PUT.
I have read from this post but it is in HTML but in my case, I have integrated Swagger into Spring Boot so I need to sort it when creating a Docket.
Sort API methods in Swagger UI
Then I noticed this method operationOrdering()
in Docket, but I still cannot make it work.
@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
With Spring Boot 2.4 and OpenAPI the following properties in application.properties may be of interest:
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).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With