无法从Swagger UI中读取文件问题

我在我的应用程序中包含了swagger UI。

当我尝试看到SWAgger UI时,我很好地获得了API的文档,但是在一段时间之后,它会在button上显示一些错误图标。

错误信息如下所示

[{“level”:“error”,“message”:“无法从文件http:// MYIP / swagger / docs / v1读取}}]

我不知道是什么原因造成的。 如果我刷新它的作品,几秒钟后显示错误。

我猜测“ http:// MYIP / swagger / docs / v1 ”是不公开的。

默认情况下,swagger ui使用在线validation器:online.swagger.io。 如果它不能访问你的swaggerurl,那么你会看到这个错误信息。

可能的解决scheme:

  1. 禁用validation:

    config.EnableSwagger().EnableSwaggerUi(c => c.DisableValidator());

  2. 让您的网站公开访问

  3. 在本地托pipevalidation器:

您可以从以下url获取validation器: https : //github.com/swagger-api/validator-badge#running-locally

您还需要告诉swaggeruivalidation器的位置

config.EnableSwagger().EnableSwaggerUi(c => c.SetValidatorUrl(<validator_url>));

为了补充接受的答案…我只是取消了SwaggerConfig.cs中的一行。 我只想通过禁用validation器来摆脱主要的欢迎页面上的红色错误。

 // By default, swagger-ui will validate specs against swagger.io's online validator and display the result // in a badge at the bottom of the page. Use these options to set a different validator URL or to disable the // feature entirely. //c.SetValidatorUrl("http://localhost/validator"); c.DisableValidator(); 

设置this.model.validatorUrl = null;dist/swagger-ui.js为我工作..

 // Default validator if(window.location.protocol === 'https:') { //this.model.validatorUrl = 'https://online.swagger.io/validator'; this.model.validatorUrl = null; } else { //this.model.validatorUrl = 'http://online.swagger.io/validator'; this.model.validatorUrl = null; } 

如果你用L5-Swagger使用PHP Laravel框架 ,只需取消注释

 'validatorUrl' => null, 

从configuration文件/config/l5-swagger.php