无法从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:
-
禁用validation:
config.EnableSwagger().EnableSwaggerUi(c => c.DisableValidator());
-
让您的网站公开访问
-
在本地托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