在 Swagger-UI 中对 API 方法进行排序

2022-09-01 20:36:41

我找不到任何工作示例,如何实现以下目标:我希望我在Swagger-UI中的API方法按方法(GET-POST-PUT-DELETE)或/和字母顺序排序。

到目前为止,所有方法都以随机顺序显示,甚至不按给定源代码的顺序显示。

我使用 Jax-RS + Jersey 1。

使用@ApiOperation的位置属性进行排序对我来说不是一个选择,因为方法太多了,API仍在扩展,所以如果有新的方法,我需要更新所有内容。

任何提示?


答案 1

Swagger UI 2.1.0+ 的更新:该参数已拆分为两个参数,如 Fix 1040Fix 1280 中所述:sorter

apisSorter

将排序应用于 API/标记列表。它可以是'alpha'(按名称排序)或函数(请参阅Array.prototype.sort()以了解排序函数的工作原理)。默认值为服务器返回的订单不变。

操作排序器

对每个 API 的操作列表应用排序。它可以是'alpha'(按路径字母数字排序),'method'(按HTTP方法排序)或函数(请参阅Array.prototype.sort()以了解排序函数的工作原理)。默认值为服务器返回的订单不变。

因此,您需要更新以按字母顺序对 API 列表进行排序,和/或对每个 API 的操作列表进行排序。宠物店演示已更新为 apisSorter,如下所示:sorterapisSorteroperationsSorter

示例:(工作演示,按字母顺序排序)

window.swaggerUi = new SwaggerUi({

...

apisSorter : "alpha"
});

对于早于 2.1.0 的 Swagger UI 版本

该参数仍然与旧版本的 Swagger UI 相关:sorter

您可以在实例化 SwaggerUi 时使用 sorter 参数。这发生在Swagger-Ui索引上的javascript中.html。从文档中

排序器将排序应用于 API 列表。它可以是“alpha”(字母数字排序路径)或“方法”(按HTTP方法排序操作)。默认值为服务器返回的订单不变。

示例

window.swaggerUi = new SwaggerUi({

...

sorter : "alpha"
});

答案 2

接受的答案有点过时了。在较新版本中,它由以下人员完成:

window.swaggerUi = new SwaggerUi({

...

apisSorter: "alpha", // can also be a function
operationsSorter : "method", // can also be 'alpha' or a function
});

推荐