webentwicklung-frage-antwort-db.com.de

Wie exportiere ich eine Swagger JSON / YAML-Datei von der Swagger-Benutzeroberfläche?

Wie kann ich eine Swagger-Definitionsdatei exportieren (es sollte sich um eine JSON- oder YAML-Datei handeln)? Ich werde danach gefragt und ich habe nur flüchtiges Wissen über Swagger.

Wir haben einen Endpunkt, der aussieht wie http://example.com//swagger/ui/index#! das sieht so aus (der Screenshot ist jedoch nicht unser eigentlicher Endpunkt, das kann ich nicht posten):

enter image description here

Die Version ist api version: v1.

Es gibt keine Schaltfläche "Exportieren", die ich sehen kann. Wie exportiere ich es?

20
sashoalm

Die URL der API-Definition wird in der oberen Leiste der Swagger-Benutzeroberfläche angezeigt - in Ihrem Beispiel

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

So scheint die vollständige URL zu sein

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


In neueren Versionen von Swagger UI wird der Link zur API-Definition häufig unter dem API-Titel angezeigt, sodass Sie mit der rechten Maustaste auf den Link klicken und Speichern unter.

Link to API definition in Swagger UI 3.x


Wenn Ihre Swagger-Benutzeroberfläche keinen sichtbaren Link zur API-Definition enthält, zeigen Sie die Seitenquelle an und suchen Sie nach dem Parameter url, z.

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


Wenn Sie den url nicht sehen oder wenn url ein Codeausdruck ist, öffnen Sie die Browser-Entwicklungstools, wechseln Sie zur Registerkarte Netzwerk und Deaktivieren Sie die Zwischenspeicherung. Aktualisieren Sie dann die Seite und suchen Sie nach der API-Definitionsdatei (swagger.json, swagger.yaml, api-docs oder ähnlich) unter HTTP-Anfragen. Sie können nach XHR filtern, um die Liste einzugrenzen.

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

37
Helen

Der JSON kann auch in das Dokument eingefügt werden, insbesondere für Swagger Version 2.0. Wenn Sie nach dem Durchgehen der Antwort von @ Helen nichts gefunden haben, probieren Sie es aus:

  1. Seitenquelle anzeigen
  2. Suche nach "swagger" Oder "spec"

Wenn Sie ein <script type="application/json"> - Tag mit etwas ähnlichem wie dem folgenden sehen, ist dies effektiv Ihr swagger.json - Inhalt. Kopieren Sie alles in die Tags <script> Und speichern Sie es in einer Datei mit dem Namen swagger.json.

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

Ich verwende Django Rest Framework (also pip package Django-rest-swagger==2.2.0) und die obigen Antworten waren nicht wirklich ausreichend. Es gab zwei Möglichkeiten:

1) Zeigen Sie die Seitenquelle mit Entwicklertools an. Wenn ich mein http://localhost:8000/docs/ Endpunkt sehe ich:

enter image description here

Das docs/ Endpunkt wurde in Django konfiguriert, daher kann es für Sie anders sein. Wenn ich mich mit den Details befasse, kann ich zur Registerkarte "Antwort" (in Chrome) gehen und nach unten scrollen, um den tatsächlichen JSON zu finden. Es ist der Wert in window.drsSpec

enter image description here

2) Der alternative (und vielleicht einfachere) Ansatz ist das Hinzufügen von ?format=openapi zu meinem Endpunkt, wie in https://github.com/marcgibbons/Django-rest-swagger/issues/59

Dadurch wird der benötigte JSON-Code direkt ausgespuckt. Ich habe es in Postman importiert, indem ich das Feld swagger in openapi geändert habe, was ein wenig hacky zu sein scheint, aber es hat funktioniert ???????? ‍♂️

2
s g

Obwohl es bereits beantwortet wurde und es das richtige ist, dachte ich, ich werde die sehr detaillierte Version davon posten. Hoffe, das hilft,

  1. Wenn Sie die Swagger-Json-Datei haben, die Sie der Swagger-Benutzeroberfläche zuführen, klicken Sie zum Generieren der .yaml-Datei einfach auf den folgenden Link, kopieren Sie Ihren Json in den Editor und laden Sie die yaml-Datei herunter. Dies ist eine einfache Methode

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

  1. Nun, der zweite Weg, wo Sie keine swagger json-Datei haben, dann sollten die folgenden Schritte helfen,

Öffnen Sie die Swagger-Benutzeroberfläche, überprüfen Sie (Umschalt + Strg + i), aktualisieren Sie die Seite und Sie erhalten die folgenden Registerkarten

enter image description here

Wählen Sie [~ # ~] xhr [~ # ~] oder Alle unter Netzwerk , überprüfen Sie die Datei api-doc? group = * und klicken Sie auf die Unterregisterkarte response . * Kopieren Sie nun den Inhalt der Datei ap-doc? Group. ** und verwenden Sie denselben Editor-Link, um in eine yaml-Datei zu konvertieren

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

1
Yashaswi N P