次の方法を実行するための実用的な例が見つかりません。Swagger-UIでAPIメソッドをメソッド(GET-POST-PUT-DELETE)またはアルファベット順でソートしたい。
これまでのところ、すべてのメソッドはランダムな順序で表示されています。これは、私のソースコードで指定された順序ではありません。
私はJax-RS + Jersey 1を使用しています。
@ApiOperationのposition属性を使用した並べ替えは、メソッドが多すぎてAPIがまだ拡張されているため、私にとってオプションではありません。新しいメソッドがある場合は、すべてを更新する必要があります。
ヒントはありますか?
Swagger UI 2.1.0+の更新:Fix 104 、 Fix 1280に記載されているように、sorter
パラメーターは2つのパラメーターに分割されました。 :
apisSorter
API /タグリストに並べ替えを適用します。 'alpha'(名前で並べ替え)または関数(並べ替え関数のしくみについては、Array.prototype.sort()を参照)を使用できます。デフォルトでは、サーバーから返される順序が変更されません。
operationsSorter
各APIの操作リストにソートを適用します。 'alpha'(パスで英数字順に並べ替え)、 'method'(HTTPメソッドで並べ替え)、または関数(並べ替え関数のしくみについては、Array.prototype.sort()を参照)を使用できます。デフォルトでは、サーバーから返される順序が変更されません。
したがって、APIリストをアルファベット順に並べ替えるにはsorter
をapisSorter
に更新し、各APIの操作リストを並べ替えるにはoperationsSorter
を更新する必要があります。ペットショップのデモは、次に示すようにapisSorterに更新されました。
window.swaggerUi = new SwaggerUi({
...
apisSorter : "alpha"
});
2.1.0より古いSwagger UIバージョンの場合:
sorter
パラメーターは、古いバージョンのSwagger UIにも関連しています。
SwaggerUiをインスタンス化するときにsorterパラメーターを使用できます。これは、Swagger-Ui index.htmlのJavaScriptで発生します。 ドキュメント から:
sorterは、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
});
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")]);
},
...
});