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):
La version est api version: v1
.
Je ne vois pas de bouton "Exporter". Alors, comment puis-je l'exporter?
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.
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.
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:
"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>
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:
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
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é ???????? ♂️
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,
lien: https://editor.swagger.io/#
Ouvrez le swagger ui, inspectez (Maj + Ctrl + i), actualisez la page et vous obtiendrez les onglets comme ci-dessous
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