我正在使用Flask和Flask-restplus来构建一个带有swagger UI的API。路径似乎按字母顺序显示,但是对于这些路径的参数,它们似乎以完全随机的顺序显示,每次重新构建项目时都会更改。
我已经彻底搜索了一种设置参数在UI上显示的顺序的方法,但我还没有找到任何东西(我预计很多人会有同样的问题)。
有没有办法设置参数的顺序?
您需要使用operationsSorter并编写自定义排序函数。这是一个例子:
// dist/index.html
const ui = SwaggerUIBundle({
url: "http://petstore.swagger.io/v2/swagger.json",
...
operationsSorter: (a, b) => {
var methodsOrder = ["get", "post", "put", "delete", "patch", "options", "trace"];
var result = methodsOrder.indexOf( a.get("method") ) - methodsOrder.indexOf( b.get("method") );
// Or if you want to sort the methods alphabetically (delete, get, head,
options,
...):
// var result = a.get("method").localeCompare(b.get("method"));
if (result === 0) {
result = a.get("path").localeCompare(b.get("path"));
}
return result;
}
})