【问题标题】:Set basePath in Swagger 2.x with swagger-jaxrs2 and openapi-configuration.yaml file使用 swagger-jaxrs2 和 openapi-configuration.yaml 文件在 Swagger 2.x 中设置 basePath
【发布时间】:2019-06-12 11:57:16
【问题描述】:

如何在 Swagger 2.x 中设置基本路径?

该应用程序是针对 JaxRS 和 Wildfly 构建的。 Swagger 使用来自 swagger-jaxrs2 的自动配置和 openapi-configuration.yaml 文件进行配置。

我可以打开 swagger-ui 并浏览 api 文档,但是当我想“尝试一下”时,请求不会转到正确的 url,因为缺少 jboss 上下文根。如何将此上下文根添加到生成的 openapi.json?

我在文档中读到我可以扩展应用程序并以编程方式配置 swagger,但如果配置可以保留在 maven 中,我更喜欢它。这是一个多模块项目,所以我想避免重复代码并保持新模块的设置过程简单。这可能吗?

pom.xml:

<dependency>
  <groupId>io.swagger.core.v3</groupId>
  <artifactId>swagger-jaxrs2</artifactId>
</dependency>
<dependency>
  <groupId>io.swagger.core.v3</groupId>
  <artifactId>swagger-jaxrs2-servlet-initializer</artifactId>
</dependency>

jboss-web.xml

<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
<context-root>/app-root</context-root>
</jboss-web>

web.xml

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <servlet-mapping>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

openapi-configuration.yaml(填充maven资源过滤):

resourcePackages:
  - ${project.groupId}
prettyPrint: true
cacheTTL: 0
openAPI:
  info:
    version: ${project.version}
    title: ${project.name}
    description: ${project.description}
    contact:
      email: contact@email.com

【问题讨论】:

    标签: java jax-rs wildfly swagger-2.0


    【解决方案1】:

    您可以将服务器位置添加到您的 openapi.yaml。它必须看起来像这样:

    openapi: 3.0.1
    info:
      version: ${project.version}
      title: ${project.name}
    servers:
      url: /app-root
    paths:
    

    服务器Url可以用maven填充的变量替换。

    【讨论】:

    • 实际上我已经尝试将它添加到我的 openapi-configuration.yaml 但它不包含在我的 openapi.yaml 文件中。
    • 好的,它确实有效,但 - url 只需要缩进 2 个空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 2021-01-21
    • 2013-01-05
    • 2018-03-27
    • 2020-04-04
    • 2016-07-18
    • 1970-01-01
    相关资源
    最近更新 更多