web-dev-qa-db-fra.com

Comment exporter un fichier Swagger JSON / YAML à partir de l'interface utilisateur Swagger?

Comment exporter un fichier de définition Swagger (il doit s'agir d'un fichier JSON ou YAML)? On me demande de telles informations et je n’ai qu’une connaissance superficielle de Swagger.

Nous avons un point final ressemblant à http://example.com//swagger/ui/index#! qui ressemble à ceci (la capture d'écran n'est pas notre véritable terminal, je ne peux pas poster ça):

enter image description here

La version est api version: v1.

Je ne vois pas de bouton "Exporter". Alors, comment puis-je l'exporter?

20
sashoalm

L’URL de la définition d’API est affichée dans la barre supérieure de l’interface utilisateur Swagger - dans votre exemple, c’est

/v2/api-docs?group=full-petstore-api

Donc, l'URL complète semble être

http://localhost:8080/v2/api-docs?group=full-petstore-api


Dans les versions plus récentes de l’interface utilisateur Swagger, le lien vers la définition de l’API est souvent affiché sous le titre de l’API. Vous pouvez donc cliquer avec le bouton droit de la souris sur le lien puis sur Enregistrer sous.

Link to API definition in Swagger UI 3.x


Si votre interface utilisateur Swagger n'a pas de lien visible vers la définition de l'API, affichez le source de la page et recherchez le paramètre url, tel que:

const ui = SwaggerUIBundle({
  url: "https://petstore.swagger.io/v2/swagger.json",     // <-------
  dom_id: '#swagger-ui',


Si vous ne voyez pas le url ou si url est une expression de code, ouvrez les outils de développement du navigateur, passez à l'onglet Résea et désactiver la mise en cache. Ensuite, actualisez la page et recherchez le fichier de définition de l'API (swagger.json, swagger.yaml, api-docs ou similaire) parmi les requêtes HTTP. Vous pouvez filtrer par XHR pour réduire la liste.

Finding the Swagger file on the Network tab of browser dev tools

37
Helen

Le JSON peut également être intégré au document, en particulier pour Swagger version 2.0. Si vous n'avez rien trouvé après avoir parcouru la réponse de @ Helen, essayez ceci:

  1. Voir la source de la page
  2. Rechercher "swagger" ou "spec"

Si vous voyez un <script type="application/json"> tag avec quelque chose de similaire au suivant, il s’agit bien de votre swagger.json contenu. Copier tout à l'intérieur du <script> balises et enregistrer dans un fichier nommé swagger.json et vous devriez être prêt à partir.

<script id="swagger-data" type="application/json">
{"spec":{"definitions":{},"info":{},"paths":{},"schemes":[],"swagger":"2.0"}}
</script>
3
Kevin Leary

J'utilise Django Rest Framework (donc pip paquet Django-rest-swagger==2.2.0) et les réponses ci-dessus ne sont pas vraiment suffisantes. Il y avait deux options:

1) Affichez le code source avec les outils de développement. Quand je frappe mon http://localhost:8000/docs/ endpoint, je vois:

enter image description here

Le docs/ Le point de terminaison a été configuré dans Django, il peut donc en différer pour vous. Lorsque je fouille dans les détails, je peux aller à l'onglet Réponse (dans Chrome) et faire défiler l'écran pour trouver le JSON réel. C'est la valeur en window.drsSpec

enter image description here

2) L’approche alternative (et peut-être plus facile) consiste à ajouter ?format=openapi à mon point de terminaison, comme suggéré dans https://github.com/marcgibbons/Django-rest-swagger/issues/59

Cela crache directement le JSON dont vous avez besoin. Je l'ai importé dans Postman en modifiant le champ swagger en openapi, ce qui semble un peu hacky mais cela a fonctionné ???????? ‍♂️

2
s g

Bien que cela ait déjà été répondu et que ce soit le bon, j'ai pensé poster la version beaucoup plus détaillée de celui-ci. J'espère que cela vous aidera,

  1. Si vous avez le fichier swagger json que vous alimentez dans l'interface utilisateur swagger, pour générer un fichier .yaml, cliquez simplement sur le lien ci-dessous, copiez-collez votre json dans l'éditeur et téléchargez le fichier yaml. C'est une méthode simple

lien: https://editor.swagger.io/#

  1. Maintenant, la deuxième façon où vous n'avez pas de fichier swagger json, alors les étapes suivantes devraient aider,

Ouvrez le swagger ui, inspectez (Maj + Ctrl + i), actualisez la page et vous obtiendrez les onglets comme ci-dessous

enter image description here

Choisissez l'onglet [~ # ~] xhr [~ # ~] ou Tous sous Réseau, recherchez le fichier api-doc? Group = * et cliquez sur le sous-onglet réponse. * Copiez maintenant le contenu du fichier ap-doc? Group. ** et utilisez le même lien d'éditeur pour convertir le fichier en yaml

lien: https://editor.swagger.io/#

1
Yashaswi N P