OpenAPI, different Endpoints with same methodname

Viewed 147

im writing a little java8 webapp right now and i am using openapi3 and swagger ui. now i have 2 packages with 1 resources folder each. they have a different @Path of course but the same Method. Both have only 1 GET method called "sayHi"

Now I included the jersey APIs for the OpenAPI simply by adding this servlet in the pom:

<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>

So no configurations files or classes whatsoever. Everything works fine but in the OpenAPI json file one of the methods (both are named sayHi gets an underscore with a 1 appended:

{
  "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" : {
              "*/*" : { }
            }
          }
        }
      }
    }
  }
}

Is there a way to not have it appended like that?

1 Answers

I did a workaround by creating multiple json files. In hindsight it was better anyway, because I can put them all into Swagger UI now with a dropdown menu.

Related