wake-up-neo.com

Überprüfung von JSON gegen das Swagger-API-Schema

Ich habe aus einigen JSON-Dateien eine API-Spezifikation erstellt, und ich versuche zu testen, ob die Dateien anhand der API-Spezifikation überprüft werden. 

Es gibt einige gute Tools, die gegen JSON-Schema validiert werden können, aber ich hatte keine Möglichkeit, ein Tool zu finden, das mit den im Swagger erstellten Spezifikationen (Tool zum Erstellen des API-Schemas) validiert wird. Die einzige Lösung, die ich gefunden habe, ist das Generieren eines Clients/Servers im Swagger-Editor, das ist ziemlich umständlich.

Gibt es bereits ein Tool, um JSON anhand des Swagger-Schemas zu überprüfen?

25
Peter Gerhat

Arnaud ist in den Kommentaren richtig, dass es hier zwei getrennte Fragen gibt.

Möchten Sie bestätigen, dass Ihre Spezifikation eine gültige OpenAPI-Spezifikation (zB Swagger-Spezifikation) ist?

Sie können

  • Kopieren Sie Ihre Angaben in den Online-Swagger-Editor und es werden Fehler ausgegeben. Ein kurzer Sprung durch die Quelle sagt mir nicht, was es für die Erstellung dieser Fehler benötigt, aber es scheint nicht, dass Sie einen Server dazu kontaktieren ...
  • Verwenden Sie den offiziellen Swagger-Parser für Java.
  • Verwenden Sie den inoffiziellen Swagger-Parser für JavaScript (Browser oder Knoten).

oder überprüfen, ob eine Implementierung dieser Spezifikation JSON erzeugen würde, das für Ihre JSON-Schemas gültig ist?

Mit anderen Worten, hier ist ein JSON aus einem Request- oder Response-Body. Ist das richtig?

Swagger basiert auf einem anderen Standard namens JSON-Schema für seine Schemaobjekte , die eigentlich den JSON (und nicht Endpunkte oder Metadaten) beschreiben. Swagger verwendet eine Teilmenge des JSON-Schemas (fehlt ua oneOf, patternProperties). Zu diesem Zweck können Sie einen JSON-Schema-Validator verwenden. Es gibt 37 hier aufgeführt ; Ich werde diesem Online-Validator einen Hinweis geben, der auch YAML-Schemas unterstützt.

Als ich jedoch sagte, dass Swagger auf einen Teil der JSON-API angewiesen ist, habe ich gelogen. In Swagger, das nicht Teil des JSON-Schemas ist, gibt es einige feste Felder, die eine besondere Bedeutung haben. Eine davon ist discriminator, die für Polymorphismen verwendet wird. Ich kenne keinen Swagger-Validierer, der discriminator verarbeiten kann. Es gibt ein ziemlich viele Tools für Swagger und einige behaupten, Validierungen durchzuführen, aber viele sind aufgegebene Software, die für alte Versionen gedacht ist, nicht vollständig ist, an andere Technologien gebunden ist und so weiter. Wenn es eine ausgereifte und gepflegte Bibliothek gibt, die ich vermisse, würde ich das gerne wissen.

19
mgold

Wenn Ihr Swagger-JSON gehostet wird, können Sie die folgende URL verwenden: http://online.swagger.io/validator/debug?url=your_url

1
josephpconley

Das OpenAPI 2.0/Swagger-Schema ist an einigen Stellen verfügbar. Es ist nur schwer zu finden, da das Word-Schema in Swagger häufig verwendet wird.

So können Sie einen generischen Prüfer auf dieses Schema und Ihr Dokument verweisen. Dies funktioniert zum Beispiel gut für mich mit der Verwendung von vscode und der YAML-Erweiterung von Red Hat.

0
Michael