如何编写自定义排序器以在 UI 中按名称对 springdoc swagger 标签进行排序?

ale*_*aaa 7 swagger swagger-ui springdoc

我正在使用最新版本的 springdoc-openapi (1.3.0)。现在我想按“名称”属性对用户界面中的标签进行排序

我了解“springdoc.swagger-ui.tagsSorter”配置,并且我可以使用自定义排序器功能。但我找不到该函数应该是什么样子的示例。

我尝试了以下似乎不起作用的方法:

springdoc.swagger-ui.tagsSorter=(a, b) => a.get("name").localeCompare(b.get("name"))

ADJ*_*ADJ 17

参考@brianbro的答案,如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

并且可以在我的 swagger UI 上看到它们根据编号排序。


bri*_*bro 11

默认情况下,您可以按字母顺序对标签进行排序:

您可以使用 OpenApiCustomiser 控制标签顺序并定义您自己的比较器:

@Bean
public OpenApiCustomiser sortTagsAlphabetically() {
    return openApi -> openApi.setTags(openApi.getTags()
            .stream()
            .sorted(Comparator.comparing(tag -> StringUtils.stripAccents(tag.getName())))
            .collect(Collectors.toList()));
}
Run Code Online (Sandbox Code Playgroud)