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

如何在spring boot(open api v3)中为swagger ui指定api文档url?

佴阳曦
2023-03-14

我在Kubernetes(spring boot starter父版本2.2.4.RELEASE)中部署了一个带有开放api 3的spring boot应用程序。其余endpoint可以通过入口访问,因此URL类似于:

https://host/ingress-path

我有一个问题,一旦应用程序被部署到入口,api-docs也可以通过:

https://host/ingress-path/v3/api-docs

当我打开斯威格UI我有404,因为斯威格UI似乎正在调查https://host/v3/api-docs...当我打开时

https://host/ingress-path/swagger-ui/index.html

并放入https://host/ingress-path/v3/api-docs为了“Expore”并运行它,我发现了我所有的API。

有人能建议如何使用一些Spring属性等为UI设置服务器吗?

目前我有这个(从https://host/ingress-path/v3/api-docs.yaml)

openapi: 3.0.1
info:
  title: My API
  description: My API description
  version: v0.0.1
servers:
- url: https://host
  description: Generated server url

这个API是自动生成的。我想服务器必须有url:https://host/ingress-path

似乎我需要具有相对路径的pathProvider,如下所述:

https://github.com/springdoc/springdoc-openapi/issues/170

但我在OpenAPI3中找不到这样的东西。

你能帮帮我吗?

谢谢

另外,我想我可以通过配置来修复它:

springdoc:
  api-docs:
    enabled: true
    path: '/v3/api-docs'
  swagger-ui:
    path: '/swagger-ui'
    config-url: '/ingress-path/v3/api-docs/swagger-config'
    url: '/ingress-path/v3/api-docs'
    doc-expansion: none
    disable-swagger-default-url: true

共有1个答案

计燕七
2023-03-14

谢谢库努库姆

测试了你的代码并确认它正常工作。

关键部分是spring ui。网址

在这里转帖这样可以帮助别人

springdoc:
  api-docs:
    enabled: true
    path: '/v3/api-docs'
  swagger-ui:
    path: '/swagger-ui'
    config-url: '/ingress-path/v3/api-docs/swagger-config'
    url: '/ingress-path/v3/api-docs'
    doc-expansion: none
    disable-swagger-default-url: true
 类似资料:
  • 正在使用swagger为我的服务编写API规范。我使用模型定义(“#/definitions/prototype”)作为和routes的主体参数。 如何指定 PATCH 路由仅接受 POST 路由在请求正文中执行的属性子集?例如,我希望 路由仅允许修改 原型属性。

  • 我是弹性搜索的新手,我正在做一个任务,我需要上传更多的文档到ES。无论何时上传,我都需要在IndexRequest API中为该文档指定文档id。是否有任何方法在java使我可以插入文档而不给它的id(即为我的文档创建随机的文档id)。

  • 如前所述,我从JSON中的开放API规范开始。我使用资源将其导入API网关。 在此之后,我将API部署到一个阶段,最后,使用aws cli从此API阶段导出文档: my API中的开放式API参数示例: 当我用上面的aws-cli命令导出它时,我得到: 和属性都已从文档导出中剥离,这是不好的,因为它们确实是此参数文档的主要部分。 还值得一提的是,如果我在AWS控制台(Swagger API网关扩展

  • 我正在使用openapi生成器maven插件从YAML文档生成代码。 以下是我如何配置maven插件以生成接口: 这个插件工作得很好,我得到这样的界面 我正在用这个类实现我的接口: 我已经检查了解决方案,当我执行api调用时,我得到了HTTP状态200,但是当我尝试访问swagger ui页面时,这个apiendpoint没有被记录。有没有办法配置OpenAPI UI或SwaggerUI以指向我的

  • 我想在Rest API(spring-mvc)文档中使用Springfox SwaggerUI。我在@RequestMapping注释中使用版本头,但是如果我有相同方法的两个版本,在SwaggerUI中只能看到一个。 上面的代码导致api文档中只有一个可见的方法。 考虑到我的版本头,是否有任何选项可以将Swagger配置为不同的endpoint?