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

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

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

我使用Jax-RS + Jersey 1。

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

任何提示?

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

apisSorter

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

operationsSorter

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

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

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

 window.swaggerUi = new SwaggerUi({ ... apisSorter : "alpha" }); 

对于早于2.1.0的Swagger UI版本

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

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

排序器将排序应用于API列表。 它可以是’ alpha ‘(按字母数字排序路径)或’ method ‘(通过HTTP方法排序操作)。 默认值是服务器返回的顺序不变。

示例 :

 window.swaggerUi = new SwaggerUi({ ... sorter : "alpha" }); 
 // I had the same issue and i fixed like this window.swaggerUi = new SwaggerUi({ apisSorter: "alpha", operationsSorter: function (a, b) { var order = { 'get': '0', 'post': '1', 'put': '2', 'delete': '3' }; return order[a.method].localeCompare(order[b.method]); }, }); 

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

 window.swaggerUi = new SwaggerUi({ ... apisSorter: "alpha", // can also be a function operationsSorter : "method", // can also be 'alpha' or a function });