2016-05-23 8 views
0

Ich habe begonnen, Swagger zu verwenden. An dieser Stelle habe ich eine Swagger-Datei für Swagger Version 1.2 erhalten. Wenn ich jedoch etwas mit dieser Datei erzeugen möchte, gibt es mir nur eine Reihe von Fehlern, die eher so aussehen, als ignoriere es einfach die Tatsache, dass meine Swagger-Datei in der Version 1.2 Spezifikation ist und geht einfach weiter und validiert sie gegen die Version 2.0 der Spez.Swagger Codegen Rückwärtskompatibilität

Einige der Fehler, die ich habe:

  • erforderliche Eigenschaft fehlt: Pfade
  • Weitere Objekte nicht erlaubt: Modelle, Apis, resourcePath, swaggerVersion, APIVERSION
  • ...

Der letzte Fehler sagt mir, dass apiVersion ist unbekannt, obwohl die gitHub Seite behauptet, dass die neuesten stabilen i s soll mit Version 1.0, 1.1, 1.2 und 2.0 kompatibel sein. Gibt es eine Möglichkeit, dass ich den Generator "zwingen" kann, 1.2 Spec statt 2.0 Spec zu denken?

Ich habe auch mit einer offiziellen 1.2 spec yaml Datei überprüft: https://raw.githubusercontent.com/swagger-api/swagger-codegen/v2.0.18/samples/yaml/pet.yml

Aber es gibt die gleichen Fehler, wenn Sie es im Editor Swagger laden: http://editor.swagger.io/#/

+0

Bitte öffnen Sie ein Ticket über https://github.com/swagger-api/swagger-codegen/issues mit der Spezifikation, um das Problem zu reproduzieren. Sie können auch https://github.com/lucybot/api-spec-converter verwenden, um Ihre swagger-Spezifikation von 1.2 in 2.0 zu konvertieren, bevor Sie prompt codegen verwenden, um Clientbibliotheken oder Server-Stubs zu generieren. –

+0

Hallo, ich habe das versucht, aber die Spezifikation, die ich verwendet habe, war "downsized" bedeutet, Anrufe mit dem gleichen Pfad (obwohl unterschiedliche Anzahl von Argumenten) entfernt wurden und es scheint, dass nur einer übrig blieb. Ich werde dafür ein Ticket machen :-) – Xabre

Antwort

2

Das swagger-codegen Projekt auf das stützt swagger-parser, die ein Modul namens swagger-compat-spec-parser hat, das Ihre 1.2-Spezifikation in 2.0-Format vor dem Weitergeben an den Codegenerator tatsächlich konvertiert.

Die angezeigten Fehler sind darauf zurückzuführen, dass die Konvertierung fehlgeschlagen ist. Sie können Swagger 1.2-Dateien lokal speichern, optimieren und die Verarbeitung erneut ausführen.

Die Herausforderung mit der Konvertierung von 1,2 zu 2,0 ist, dass Swagger 1.2 anfänglich kein Schema hatte, um zu validieren. So gibt es eine Lot ungültige Prahler da draußen, und es ist technisch unmöglich, alle verschiedenen Probleme in 1.2 Spezifikationen in 2.0 zu konvertieren.

Das heißt, wir versuchen immer, die Werkzeuge besser zu machen. Wenn Sie einen "wiederholbaren" Fehler im 1.2-Konverter finden, geben Sie ein Problem im swagger-spec-Projekt ein und wir werden es beheben (die meisten sind einfach). .

Verwandte Themen