OpenAPI,具有相同方法名称的不同端点
OpenAPI, different Endpoints with same methodname
我现在正在写一些 java8 webapp,我正在使用 openapi3 和 swagger ui。现在我有 2 个包,每个包有 1 个资源文件夹。他们当然有不同的@Path,但方法相同。两者都只有 1 个名为“sayHi”的 GET 方法
现在我通过在 pom 中添加这个 servlet 来包含 OpenAPI 的球衣 API:
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.wadl.disableWadl</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
io.swagger.v3.jaxrs2.integration.resources,
SampleWebappSwagger.api1.resources,
SampleWebappSwagger.api2.resources
</param-value>
</init-param>
<init-param>
<param-name>openApi.configuration.prettyPrint</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
所以没有任何配置文件或 类。
一切正常,但在 OpenAPI json 文件中,其中一种方法(都命名为 sayHi 得到一个带有 1 的下划线:
{
"openapi" : "3.0.1",
"paths" : {
"/res1/dino1" : {
"get" : {
"operationId" : "sayHi",
"responses" : {
"default" : {
"description" : "default response",
"content" : {
"*/*" : { }
}
}
}
}
},
"/res2/dino2" : {
"get" : {
"operationId" : "sayHi_1",
"responses" : {
"default" : {
"description" : "default response",
"content" : {
"*/*" : { }
}
}
}
}
}
}
}
有没有办法不那样附加它?
我通过创建多个 json 文件来解决这个问题。事后看来还是更好,因为我现在可以通过下拉菜单将它们全部放入 Swagger UI。
我现在正在写一些 java8 webapp,我正在使用 openapi3 和 swagger ui。现在我有 2 个包,每个包有 1 个资源文件夹。他们当然有不同的@Path,但方法相同。两者都只有 1 个名为“sayHi”的 GET 方法
现在我通过在 pom 中添加这个 servlet 来包含 OpenAPI 的球衣 API:
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.wadl.disableWadl</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
io.swagger.v3.jaxrs2.integration.resources,
SampleWebappSwagger.api1.resources,
SampleWebappSwagger.api2.resources
</param-value>
</init-param>
<init-param>
<param-name>openApi.configuration.prettyPrint</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
所以没有任何配置文件或 类。 一切正常,但在 OpenAPI json 文件中,其中一种方法(都命名为 sayHi 得到一个带有 1 的下划线:
{
"openapi" : "3.0.1",
"paths" : {
"/res1/dino1" : {
"get" : {
"operationId" : "sayHi",
"responses" : {
"default" : {
"description" : "default response",
"content" : {
"*/*" : { }
}
}
}
}
},
"/res2/dino2" : {
"get" : {
"operationId" : "sayHi_1",
"responses" : {
"default" : {
"description" : "default response",
"content" : {
"*/*" : { }
}
}
}
}
}
}
}
有没有办法不那样附加它?
我通过创建多个 json 文件来解决这个问题。事后看来还是更好,因为我现在可以通过下拉菜单将它们全部放入 Swagger UI。