如何编写自定义排序器以在 UI 中按名称对我的 springdoc swagger 标签进行排序?
How do I write a custom sorter to sort my springdoc swagger tags by name in the UI?
我正在使用最新版本 (1.3.0) 的 springdoc-openapi。现在我想 按 "name" 属性.
对 UI 中的标签进行排序
我知道 "springdoc.swagger-ui.tagsSorter" 配置并且我可以使用自定义排序器功能。但是我找不到函数应该是什么样子的例子。
我尝试了以下方法,但似乎不起作用:
springdoc.swagger-ui.tagsSorter=(a, b) => a.get("name").localeCompare(b.get("name" ))
默认情况下,您可以按字母顺序对标签进行排序:
您可以控制标签顺序,使用 OpenApiCustomiser 并定义您自己的比较器:
@Bean
public OpenApiCustomiser sortTagsAlphabetically() {
return openApi -> openApi.setTags(openApi.getTags()
.stream()
.sorted(Comparator.comparing(tag -> StringUtils.stripAccents(tag.getName())))
.collect(Collectors.toList()));
}
参考自, as suggested at https://springdoc.org/faq.html#how-can-i-sort-endpoints-alphabetically
我加了
@Tag(name="1. Admin endpoints")
@Tag(name = "2. Everyone's enpoints!")
及以下支持 application.yml :
springdoc.swagger-ui.tagsSorter=alpha
并且可以看到它们根据我的招摇编号进行排序 UI。
我正在使用最新版本 (1.3.0) 的 springdoc-openapi。现在我想 按 "name" 属性.
对 UI 中的标签进行排序我知道 "springdoc.swagger-ui.tagsSorter" 配置并且我可以使用自定义排序器功能。但是我找不到函数应该是什么样子的例子。
我尝试了以下方法,但似乎不起作用:
springdoc.swagger-ui.tagsSorter=(a, b) => a.get("name").localeCompare(b.get("name" ))
默认情况下,您可以按字母顺序对标签进行排序:
您可以控制标签顺序,使用 OpenApiCustomiser 并定义您自己的比较器:
@Bean
public OpenApiCustomiser sortTagsAlphabetically() {
return openApi -> openApi.setTags(openApi.getTags()
.stream()
.sorted(Comparator.comparing(tag -> StringUtils.stripAccents(tag.getName())))
.collect(Collectors.toList()));
}
参考自
我加了
@Tag(name="1. Admin endpoints")
@Tag(name = "2. Everyone's enpoints!")
及以下支持 application.yml :
springdoc.swagger-ui.tagsSorter=alpha
并且可以看到它们根据我的招摇编号进行排序 UI。