我正在使用swagger openApi 3.0.0记录API。我使用的是招摇本身提供的承载身份验证。现在,当授权令牌正确时,服务器将发送响应,并通过swagger UI进行显示,但是当令牌错误时,服务器将发送403禁止的错误,而swagger仅显示“ TypeError:无法提取”。我已经附上了浏览器的“网络”标签内容的屏幕截图。
OPTIONS with sending 200 response
getting the Access-control-allow-origin: * from the OPTIONS response
getting the server response 403 as the authorization token is wrong
这是我的swaggerConfig.java代码
@Bean
public Docket swagger() {
return new Docket(DocumentationType.SWAGGER_12)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
/**
* @param defaultResourcesProvider
* @return swaggerResource for documenting the APIs
*/
@Primary
@Bean
public SwaggerResourcesProvider swaggerResourcesProvider(
InMemorySwaggerResourcesProvider defaultResourcesProvider) {
return () -> {
List<SwaggerResource> resources = new ArrayList<>();
Arrays.asList(<list of APIs>)
.forEach(resourceName -> resources.add(loadResource(resourceName)));
return resources;
};
}
private SwaggerResource loadResource(String resource) {
String file_name = "swagger.yaml";
SwaggerResource swaggerResource = new SwaggerResource();
swaggerResource.setName(resource);
swaggerResource.setLocation("/swagger-apis/" + resource + "/" + file_name);
return swaggerResource;
}
在其中一个API的swagger.yaml文件中,我使用了securityschema,如下所示:
安全性: -bearerAuth:[]
securitySchemes: bearerAuth: 类型:http 方案:承载