Springboot中加载API定义失败

Tar*_*nde 5 java spring-boot openapi

我正在转向 Spring doc open Api 并尝试访问 URL。我从控制台收到以下错误和日志。

网址:http://localhost:8080/swagger-ui/index.html?url=v3/api-docs

日志:

2020-03-24 13:21:03.930 DEBUG 32622 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet        : GET "/swagger-ui/index.html?url=v3/api-docs", parameters={masked}
2020-03-24 13:21:03.931 DEBUG 32622 --- [nio-8080-exec-3] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped to ResourceHttpRequestHandler ["classpath:/META-INF/resources/webjars/"]
2020-03-24 13:21:03.933 DEBUG 32622 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet        : Completed 304 NOT_MODIFIED
2020-03-24 13:21:03.992 DEBUG 32622 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet        : GET "/swagger-ui/v3/api-docs", parameters={}
2020-03-24 13:21:03.993 DEBUG 32622 --- [nio-8080-exec-4] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped to ResourceHttpRequestHandler ["classpath:/META-INF/resources/webjars/"]
2020-03-24 13:21:03.994 DEBUG 32622 --- [nio-8080-exec-4] o.s.w.s.r.ResourceHttpRequestHandler     : Resource not found
2020-03-24 13:21:03.994 DEBUG 32622 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet        : Completed 404 NOT_FOUND
2020-03-24 13:21:03.994 DEBUG 32622 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet        : "ERROR" dispatch for GET "/error", parameters={}
2020-03-24 13:21:03.995 TRACE 32622 --- [nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : 2 matching mappings: [{ /error}, { /error, produces [text/html]}]
2020-03-24 13:21:03.995 TRACE 32622 --- [nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
2020-03-24 13:21:03.996 DEBUG 32622 --- [nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Using 'application/json', given [application/json, */*] and supported [application/json, application/*+json, application/json, application/*+json]
2020-03-24 13:21:03.997 DEBUG 32622 --- [nio-8080-exec-4] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Writing [{timestamp=Tue Mar 24 13:21:03 EDT 2020, status=404, error=Not Found, message=No message available,  (truncated)...]
2020-03-24 13:21:03.998 DEBUG 32622 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet        : Exiting from "ERROR" dispatch, status 404
Run Code Online (Sandbox Code Playgroud)

当我尝试打开以下 URL 时,我确实看到了 JSON 响应。

http://localhost:8080/v3/api-docs

Edu*_*sta 6

今天我在访问如下所示的 swagger URL 时遇到了同样的问题:

  • http://localhost:6050/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/

网络浏览器显示页面:

在此输入图像描述

将路径添加/v3/api-docs到页面文本字段并单击浏览按钮后,将显示文档。

在此输入图像描述

查看springdoc-openapi 配置,/swagger-ui.html当我访问以下 URL 时,我可以看到默认的 swagger ui 路径是这样的:

  • http://localhost:6050/swagger-ui.html

有效。


小智 5

如果您使用安全性或类似安全性的东西,您应该允许“../v3/api”文件。我这样用

http.authorizeRequests().antMatchers("/swagger/**","/v3/**").permitAll();


Tar*_*nde 2

是的,引用的 URL 不正确。我尝试使用新的 URL,效果很好。

http://localhost:8080/swagger-ui/index.html?url=/v3/api-docs&validatorUrl=