web-dev-qa-db-fra.com

Trier les méthodes API dans Swagger-UI

Je ne trouve aucun exemple de travail, comment atteindre les objectifs suivants: Je veux que mes méthodes d'API dans Swagger-UI soient triées par méthodes (GET-POST-PUT-DELETE) OU/AND par ordre alphabétique.

Jusqu'à présent, toutes les méthodes sont affichées dans un ordre aléatoire, même pas dans l'ordre donné mon code source.

J'utilise Jax-RS + Jersey 1.

Le tri à l'aide de l'attribut position de @ApiOperation n'est pas une option pour moi, car il y a trop de méthodes et l'API est toujours en cours d'extension, donc je devrais tout mettre à jour s'il y en a une nouvelle.

Des indices?

19
ulrich

Mise à jour pour Swagger UI 2.1.0 +: Le paramètre sorter a été divisé en deux paramètres, comme indiqué dans Fix 104 , correction 128 :

apisSorter

Appliquez un tri à la liste des API/balises. Cela peut être 'alpha' (trier par nom) ou une fonction (voir Array.prototype.sort () pour savoir comment fonctionne la fonction de tri). Par défaut, l'ordre renvoyé par le serveur est inchangé.

operationsSorter

Appliquez un tri à la liste des opérations de chaque API. Cela peut être 'alpha' (trier par des chemins alphanumériques), 'méthode' (trier par méthode HTTP) ou une fonction (voir Array.prototype.sort () pour savoir comment fonctionne la fonction de tri). Par défaut, l'ordre renvoyé par le serveur est inchangé.

Vous aurez donc besoin de mettre à jour sorter vers apisSorter pour trier la liste des API par ordre alphabétique et/ou operationsSorter pour trier la liste des opérations de chaque API. La démo de l'animalerie a été mise à jour vers apisSorter, comme indiqué ci-dessous:

Exemple : ( démo de travail , trié par ordre alphabétique)

window.swaggerUi = new SwaggerUi({

...

apisSorter : "alpha"
});

Pour les versions de Swagger UI antérieures à 2.1.0 :

Le paramètre sorter est toujours pertinent pour les anciennes versions de Swagger UI:

Vous pouvez utiliser le paramètre sorter lors de l'instanciation de SwaggerUi. Cela se produit dans le javascript sur le Swagger-Ui index.html. De la documentation :

le trieur applique un tri à la liste des API. Il peut s'agir de la méthode ' alpha ' (trier les chemins par ordre alphanumérique) ou ' '(opérations de tri par méthode HTTP). Par défaut, l'ordre renvoyé par le serveur est inchangé.

Exemple :

window.swaggerUi = new SwaggerUi({

...

sorter : "alpha"
});
15
Anthony Neace
// 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]);    
  },
});
9
Hiddenben

La réponse acceptée est un peu dépassée. Dans les versions plus récentes, cela se fait par:

window.swaggerUi = new SwaggerUi({

...

apisSorter: "alpha", // can also be a function
operationsSorter : "method", // can also be 'alpha' or a function
});
8

Mise à jour pour Swagger 3.18.

 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")]);
            },
           ...
 });
0
Volodya Lombrozo