当前位置: 首页 > 知识库问答 >
问题:

SpringDoc/在nginx代理后大摇大摆

阎慈
2023-03-14

我们在nginx代理后运行服务,以便:

http://service-post:8080/swagger-用户界面。html被路由到公共地址https://host.com/services/post/swagger-ui.html

或者从另一个角度定义:

nginxhttps://host.com/services/post/swagger-ui.html上接收到请求时,它会去掉/service/post/前缀,并将请求传递给/swagger-ui.html路径上的postservice。

在设置任何东西之前(使用默认的SpringDoc配置),我可以正确地看到超文本传输协议上的昂首阔步的文档://service-post: 8080/swagger-ui.html。

设置主机上公共地址的路径。com,我正在使用:

springdoc.api-docs.path:        /services/post/api-docs
springdoc.swagger-ui.path:      /services/post/swagger-ui.html
springdoc.swagger-ui.configUrl: /services/post/v3/api-docs/swagger-config

然而,这似乎完全阻止了它:

/swagger用户界面。html/api文档/v3/api文档/swagger配置返回404,用于服务站:8080/*https://host.com/services/post/*

唯一有效的办法是https://host.com/services/post/swagger-ui/index.html这显示了petstore文档。

我们没有使用Spring Boot,只是5.3.1版的Spring MVC。

那么,如何设置以保持对原始路径(例如,/api docs)的处理,但在前缀路径(/services/post/api docs)上执行查找?

共有2个答案

司空炯
2023-03-14

所有这些都记录在这里:

  • https://springdoc.org/index.html#how-can-i-deploy-springdoc-openapi-ui-behind-a-reverse-proxy

如果未使用spring boot,则可以添加ForwardedHeaderFilter bean:

  • https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/ForwardedHeaderFilter.html
卫财
2023-03-14

最后,我完全忽略了默认重定向:

  • swagger用户界面。html-

并实施了我自己的一个:

  • docs-

这样我就不需要更改任何内容,所有内容都可以使用默认设置。

 类似资料:
  • 我在spring boot 2.3.1应用程序中添加了swagger ui,它在本地运行良好。 此应用程序部署在kubernetes集群中,但无法访问(没有入口) 相反,我们部署了另一个可以访问并可以调用此服务的spring boot应用程序。API调用可以很好地重定向,但swagger ui不起作用。 基本上,我的代理应用程序可以这样访问:https://app-dev.domain.io/pr

  • Zuul如何在超文本传输协议上大摇大摆://foo-service: 8080可以正确地从http://public.com/foo-service进行外部访问? 我的任务是用nginx替换Zuul(这不是我的决定,我不能改变它)。我用nginx重写http://public.com/foo-service/names-controller/swagger-ui.html到http://foo-s

  • 我们在我们的泽西应用程序中使用了@Role允许注释来限制用户对应用编程接口某些部分的访问。我们如何在SwaggerUI中显示这些信息? 到目前为止,我已经用@ApiOperation注释了方法以显示in/out参数,并尝试使用@Authorization/@AuthorizationScope,但我只为我们不使用的oauth2显示了它。最接近out case的是ApiKeyAuthDefiniti

  • 我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }

  • SpringDoc 1.5.3(最新版本) SwaggerUI 3.41.0(最新版本) Swagger UI显示了的好字段。 我有一个POSTendpoint,所以我使用了。 我可以发送一个JSON,它解析成我的body对象。到目前为止还不错。 但是,Swagger UI只显示一个文本区域,我应该在其中放置整个JSON。这不太方便。 我希望Swagger UI为请求类的每个属性显示单独的字段;没

  • 有没有人用spring-data-rest配置了swagger。我知道swagger有DocumentationConfig类,它扫描所有spring-mvc请求映射。但是,如何将其用于spring-data-rest,因为没有定义显式的请求映射。非常感谢在这方面的任何帮助。此外,我还想知道,是否有其他支持Spring-Data-REST的文档框架。