Wie verwende ich das öffentliche swakager-generator-Docker-Image, um einen Client zu generieren?

8

Wir haben eine vollständig dockerisierte Web-App mit einer gültigen Swagger-Definition für die API. Die API wird in einem eigenen Andock-Container ausgeführt, und wir verwenden docker-compose, um alles zu orchestrieren. Ich möchte einen Ruby-Client basierend auf der Swagger-Definition erstellen, die sich unter http://api:8443/apidocs.json befindet.

Ich habe die Dokumentation hier durchgelesen, die mich zu Swaggers öffentliches Docker-Image zum Generieren von Client- und Servercode. Leider fehlt die Dokumentation und es gibt keine Beispiele, wie man mit dem Docker Image tatsächlich einen Client erzeugen kann.

Die Dockerfile zeigt an, dass der Container einen Webdienst ausführt , was ich nur annehmen kann, ist die dockerisierte Version von Ссылка . Daher würde ich erwarten, einen Client mit dem folgenden Befehl generieren zu können:

curl -X POST -H "content-type:application/json" -d \ '{"swaggerUrl":"http://api:8443/apidocs"}' \ http://swagger-generator:8080/api/gen/clients/ruby

Kein Glück hier. Ich bekomme immer wieder "ungültige Swagger-Definition", obwohl ich bestätigt habe, dass die Swagger-Definition mit (npm -q install -g swagger-tools >/dev/null) && swagger-tools validate http://api:8443/apidocs gültig ist.

Irgendwelche Ideen?

    
mycargus 27.09.2016, 17:00
quelle

1 Antwort

4

Sie sind in der Tat richtig, das Docker-Bild, auf das Sie sich beziehen, ist das gleiche Bild, das in Ссылка

verwendet wird

Das Problem, das Sie haben, ist, dass der Eingabeparameter nicht korrekt ist.

Um es richtig zu machen, beachten Sie bitte, dass der swagger-generator über eine Webschnittstelle verfügt. Also, sobald Sie es starten, wie die Anweisungen sagen, öffnen Sie es in einem Browser. Zum Beispiel (ersetzen Sie den GENERATOR_HOST durch die IP-Adresse Ihrer Maschine):

%Vor%

Dann kannst du den swagger-ui auf http://192.168.99.100

öffnen

Der wichtige Teil hier ist, dass Sie die Benutzeroberfläche verwenden können, um die Aufrufsyntax zu sehen. Wenn Sie einen Client generieren, gehen Sie zu http://192.168.99.100/#!/clients/generateClient , wählen Sie die Sprache aus, die Sie generieren möchten, und klicken Sie auf die Nutzlast rechts. Ersetzen Sie das Feld swaggerUrl durch die Adresse Ihres Servers und voila.

Sie können die Ausgabe in der Wellung verwenden, um herauszufinden, wie Sie von der Befehlszeile aus aufrufen. Es sollte von dort leicht sein.

Bitte beachten Sie, dass, nur weil ein Drittanbieter-Tool sagt, dass die Swagger-Definition gültig ist, nicht bedeutet, dass es tatsächlich ist. Ich denke nicht, dass das Ihr Problem ist, aber die Tool-Meilenzahl von Drittanbietern kann variieren ...

    
fehguy 28.09.2016, 03:35
quelle