Swagger-UI中的排序API方法

问题描述 投票:19回答:4

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

到目前为止,所有方法都以随机顺序显示,即使不是按照我的源代码给出的顺序显示。

我使用Jax-RS +球衣1。

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

任何提示?

java jax-rs swagger swagger-ui
4个回答
16
投票

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

apisSorter

对API /标签列表应用排序。可以是“ alpha”(按名称排序)或函数(请参阅Array.prototype.sort()了解如何排序功能有效)。默认是服务器返回的顺序不变。

operationsSorter

对每个API的操作列表进行排序。它可以是“字母”(按字母数字顺序按路径排序),“方法”(按字母顺序排序)HTTP方法)或函数(请参阅Array.prototype.sort()了解如何排序功能有效)。默认是服务器返回的顺序不变。

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

[Example:(working demo,按字母顺序排序]

window.swaggerUi = new SwaggerUi({

...

apisSorter : "alpha"
});

对于Swagger UI版本低于2.1.0

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

您可以在实例化SwaggerUi时使用sorter

参数。这发生在Swagger-Ui index.html上的javascript中。从documentation

分类器对API列表进行分类。它可以是“ ”(排序路径字母数字)或“ 方法

”(通过HTTP方法进行排序操作)。默认是服务器返回的顺序不变。Example

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 });

Swagger 3.18.3更新

window.ui = SwaggerUIBundle({ ... operationsSorter: function (a, b) { var order = {'get': '0', 'post': '1', 'put': '2', 'delete': '3'}; return order[a.get("method")].localeCompare(order[b.get("method")]); }, ... });

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]); }, });

8
投票
接受的答案有点过时。在较新的版本中,它是通过:

0
投票

Swagger 3.18.3更新

© www.soinside.com 2019 - 2024. All rights reserved.