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。