2015-01-06 7 views
36

Ich habe die Swagger ui in meiner Anwendung eingebettet. Und wenn ich meine Knotenanwendung lokal ausführe, funktioniert die Benutzeroberfläche großartig.Swagger UI zeigt Fehler (Validierung) bei der Bereitstellung

Allerdings, wenn ich die Benutzeroberfläche zu meinen ‚echten‘ Server bereitstellen erhalte ich ein Fehlerbild in der rechten unteren Ecke meiner Prahlerei ui:

enter image description here

Ich bin sicher, dass dies etwas, das ich tue, das ist es zu vermasseln, aber ich habe keine Ahnung. Wieder funktioniert das lokal, wenn ich über http auf swagger ui zugreife.

Allerdings, wenn ich deploy ich durch Apache laufen und über https ausliefern, sehe ich einen Fehler. Noch schlimmer, keiner meiner "Try It" -Aufrufe funktioniert, wenn er eingesetzt wird. Scheint wie die Anfrage wird nicht gemacht.

Sieht so aus, als ob die Benutzeroberfläche einen Aufruf an einen Validator mit meinem swagger.json aufruft, dieser Aufruf funktioniert jedoch lokal.

Was mache ich falsch?

Wenn ich das Fehlersymbol klicken, erhalte ich:

enter image description here

Antwort

2

Swagger-UI ist in der Lage einige fehlerhafte Angaben zu handhaben, was wahrscheinlich ist, warum es funktioniert lokal ist.

Standardmäßig wird der Validierungsprozess nicht ausgeführt, wenn die Spezifikation von localhost gelesen wird. Sie sollten in der Lage sein, es mit der validatorUrl() zu starten, wenn Sie möchten.

Um die Validierungsfehler zu sehen, klicken Sie einfach auf das Symbol , und es wird Ihnen eine Liste von Problemen mit Ihrer Spezifikation geben.

+0

Danke @Webron. Ich erhalte einen internen Serverfehler, wenn ich auf dieses Symbol klicke. Ich habe das swagger 2.0 doc mit dem swagger editor erzeugt und ich habe keine Fehler gesehen. Davon abgesehen weiß ich, dass die Benutzeroberfläche und der Editor sich in verschiedenen Zuständen befinden, die der Spezifikation 2.0 entsprechen. Nicht sicher, ob sie verschiedene Validatoren verwenden. Ich werde sehen, wie ich die Spezifikation um ein paar Pfade auf einmal verkleinern kann, um zu sehen, ob ich den Ort des Fehlers identifizieren kann. – lostintranslation

+0

Können Sie das nochmal versuchen? Ich habe es gerade ausprobiert und es hat gut funktioniert. – Ron

+0

Ich habe gerade bemerkt, dass Sie die Frage bearbeitet haben. Haben Sie den validatorUrl-Parameter von SwaggerUi bearbeitet? Ist der Server auf localhost bereitgestellt? – Ron

33

zu deaktivieren Prahlerei Validator hinzufügen validatorUrl: null, in dist/index.html in

window.swaggerUi = new SwaggerUi({ 
    url: url, 
    validatorUrl : null, 
    dom_id: "swagger-ui-container", 
Verwandte Themen