使用 swagger-jaxrs2 和 openapi-configuration.yaml 文件在 Swagger 2.x 中设置 basePath
Set basePath in Swagger 2.x with swagger-jaxrs2 and openapi-configuration.yaml file
如何在 Swagger 中设置基本路径 2.x?
该应用程序是针对 JaxRS 和 Wildfly 的 uilt。使用来自 swagger-jaxrs2 的自动配置和打开的api-configuration.yaml 文件配置 Swagger。
我可以打开 swagger-ui 并浏览 api 文档,但是当我想要 "try it out" 时,请求不会正确 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
您可以将服务器位置添加到您的 openapi.yaml。它必须看起来像这样:
openapi: 3.0.1
info:
version: ${project.version}
title: ${project.name}
servers:
url: /app-root
paths:
服务器Url可以替换成maven填充的变量
如何在 Swagger 中设置基本路径 2.x?
该应用程序是针对 JaxRS 和 Wildfly 的 uilt。使用来自 swagger-jaxrs2 的自动配置和打开的api-configuration.yaml 文件配置 Swagger。
我可以打开 swagger-ui 并浏览 api 文档,但是当我想要 "try it out" 时,请求不会正确 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
您可以将服务器位置添加到您的 openapi.yaml。它必须看起来像这样:
openapi: 3.0.1
info:
version: ${project.version}
title: ${project.name}
servers:
url: /app-root
paths:
服务器Url可以替换成maven填充的变量