我找不到任何有效的例子,如何实现以下目标: 我希望Swagger-UI中的API方法按方法排序(GET-POST-PUT-DELETE)或按字母顺序排序。
到目前为止,所有方法都以随机顺序显示,即使不是按照源代码的顺序显示。
我使用Jax-RS + Jersey 1.
使用@ApiOperation的position属性进行排序对我来说不是一个选项,因为有太多方法且API仍然在扩展,所以如果有新的那样我需要更新所有。
任何提示?
答案 0 :(得分:15)
Swagger UI 2.1.0 +更新: sorter
参数已分为两个参数,如Fix 1040,Fix 1280中所述:
apisSorter
对API /标签列表应用排序。它可以是' alpha' (按名称排序)或函数(请参阅Array.prototype.sort()以了解如何操作 排序功能工作)。默认值是服务器返回的顺序 不变。
operationsSorter
对每个API的操作列表应用排序。它可以是' alpha' (按字母数字路径排序),'方法' (排序方式 HTTP方法)或函数(请参阅Array.prototype.sort()以了解具体方法 排序功能工作)。默认值是服务器返回的顺序 不变。
因此,您希望将sorter
更新为apisSorter
以按字母顺序对API列表进行排序,和/或operationsSorter
对每个API的操作列表进行排序。宠物店演示已更新为apisSorter,如下所示:
Example :( working demo,按字母顺序排序)
window.swaggerUi = new SwaggerUi({
...
apisSorter : "alpha"
});
对于早于2.1.0的Swagger UI版本:
sorter
参数仍与旧版Swagger UI相关:
在实例化SwaggerUi时,您可以使用 sorter 参数。这发生在Swagger-Ui index.html上的javascript中。来自documentation:
排序器将排序应用于API列表。它可以是 alpha ' (排序路径 字母数字)或' 方法' (通过HTTP方法排序操作)。 默认值是服务器返回的顺序不变。
window.swaggerUi = new SwaggerUi({
...
sorter : "alpha"
});
答案 1 :(得分:9)
> dat <- read.table("data.txt", quote="\"", comment.char="")
> dat
V1 V2 V3
1 2011 Apr 1376
2 2012 Apr 1232
3 2013 Apr 1360
4 2014 Apr 1294
5 2015 Apr 1344
6 2011 Aug 1933
7 2012 Aug 1930
8 2013 Aug 1821
9 2014 Aug 1845
10 2015 Aug 1855
> library(reshape2)
> dcast(dat, V1~V2)
Using V3 as value column: use value.var to override.
V1 Apr Aug
1 2011 1376 1933
2 2012 1232 1930
3 2013 1360 1821
4 2014 1294 1845
5 2015 1344 1855
答案 2 :(得分:8)
接受的答案有点过时了。在较新的版本中,它由以下人员完成:
window.swaggerUi = new SwaggerUi({
...
apisSorter: "alpha", // can also be a function
operationsSorter : "method", // can also be 'alpha' or a function
});
答案 3 :(得分:0)
更新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")]);
},
...
});
答案 4 :(得分:0)
对于使用SwaggerUI3的.net Core用户:
app.UseSwaggerUi3(j=>j.TagsSorter = "alpha");
答案 5 :(得分:0)
对于最终遇到相同问题的 Python 人员,这里是如何解决它
使用 flasgger v0.9.5 (=Swagger-UI 3.28.0) 和 Flask v2.0.1:
app = Flask(__name__)
config = {
"ui_params": {
"operationsSorter": "alpha", # sorts endpoints alphabetically within a tag
"tagsSorter": "alpha". # sorts tags alphabetically
}
}
Swagger(app, config=config)