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

ulr*_*ich 19 java jax-rs swagger swagger-ui

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

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

我使用Jax-RS + Jersey 1.

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

任何提示?

Ant*_*ace 16

更新扬鞭UI 2.1.0+:sorter参数已被分成两个参数,如指出的修复1040,修复1280:

apisSorter

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

operationsSorter

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

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

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

window.swaggerUi = new SwaggerUi({

...

apisSorter : "alpha"
});
Run Code Online (Sandbox Code Playgroud)

对于早于2.1.0的Swagger UI版本:

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

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

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

示例:

window.swaggerUi = new SwaggerUi({

...

sorter : "alpha"
});
Run Code Online (Sandbox Code Playgroud)


小智 9

// 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]);    
  },
});
Run Code Online (Sandbox Code Playgroud)


Ken*_*but 8

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

window.swaggerUi = new SwaggerUi({

...

apisSorter: "alpha", // can also be a function
operationsSorter : "method", // can also be 'alpha' or a function
});
Run Code Online (Sandbox Code Playgroud)