Swagger UI shows error (validation) when deployed

2019-03-12 02:32发布

问题:

I have the swagger ui embedded in my application. And when I run my node application locally the UI works great.

However when I deploy the UI to my 'real' server I get an error image in the bottom right of my swagger ui:

I am sure this is something I am doing that is screwing it up but I have no idea. Again works locally when I access swagger ui via http.

However when I deploy I run through apache and serve out over https, I see an error. Even worse none of my 'Try it' calls work when deployed. Seems like the request is not being made.

Looks like the UI makes a call to a validator with my swagger.json, however that call works locally.

What am I doing wrong?

When I click the error icon, I get:

回答1:

To turn off swagger validator add validatorUrl : null, in dist/index.html in

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


回答2:

When this happens (and it sometimes does) I go here:

http://json-schema-validator.herokuapp.com/index.jsp

Paste the swagger schema from here https://github.com/swagger-api/swagger-spec/blob/master/schemas/v2.0/schema.json in the schema field and then your spec in the data field



回答3:

Swagger-UI is able to handle some malformed specs, which is probably why it is works locally.

By default, the validation process does not run when the spec is read from localhost. You should be able to run it still, if you wish, using the validatorUrl (https://github.com/swagger-api/swagger-ui#parameters).

To see the validation errors, just click on the ERROR icon, and it will give you a list of problems with your spec.