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

代理配置背后的springdoc openapi大摇大摆的ui

东方富
2023-03-14

我在spring boot 2.3.1应用程序中添加了swagger ui,它在本地运行良好。

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.3.9</version>
    </dependency>

此应用程序部署在kubernetes集群中,但无法访问(没有入口)

相反,我们部署了另一个可以访问并可以调用此服务的spring boot应用程序。API调用可以很好地重定向,但swagger ui不起作用。

基本上,我的代理应用程序可以这样访问:https://app-dev.domain.io/proxy-service/v2/my-service/**

=

在我的代理服务中,我将X转发头设置为:

X-Forwarded-Host=主机头(app-dev.domain.io)

X-Forwarded-Proto=https

X-Forwarded-Prefix=/proxy-service/v2/my-service/

我还设置了头Accept Encoding=identity

然后代理服务调用http://my-service集群内部

在MyService配置中,我设置了:server。转发头策略=框架

它似乎找到了静态文件,但我得到了javascript错误和一个空白页面:uncaughtsyntaxerror:uncontractedend-of-input-swagger-ui独立预设。js:21未捕获的语法错误:无效或意外的令牌索引。html?configUrl=/proxy service/v2/my service/v3/api docs/swagger config:41未捕获引用错误:未在窗口中定义SwaggerUIBundle。装载

根据我所搜索的内容,我做了需要的事情(在调用服务中使用头策略,在代理中使用X-Forwarded)

任何帮助都会非常棒,因为我希望这些服务能够轻松测试,而无需手动维护邮递员集合或类似的东西。(有时总是忘记)谢谢

共有1个答案

富波光
2023-03-14

我发现javascript文件被截断了。所以javascript错误是有意义的。修好这个我再试试

编辑:它现在正在使用完整的javascript文件。我使用HttpURLConnection而不是RestTemboard,它无缘无故地调优文件

 类似资料:
  • 我们在代理后运行服务,以便: 被路由到公共地址 或者从另一个角度定义: 当nginx在上接收到请求时,它会去掉前缀,并将请求传递给路径上的service。 在设置任何东西之前(使用默认的SpringDoc配置),我可以正确地看到超文本传输协议上的昂首阔步的文档://service-post: 8080/swagger-ui.html。 设置主机上公共地址的路径。com,我正在使用: 然而,这似乎完

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

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

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

  • thoses线有什么问题 “data”属性应该是$ref中给出的模式类型的数组,但这是结果 好的,似乎正确的方法是tu把$ref直接放在items键下,我的问题是使用保留键“status”,那么,我如何在对象模式中使用保留键呢? 在我的客户机模式中,我将属性status放了两次,但我没有看到它已经存在,所以当我更改属性名时,它起作用了,我在想“status”可能是一个保留的关键字。