Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-7548

ensure multiple swagger enabled jaxrs endpoints in same bundle can get rendered separately in swagger-ui

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • fuse-7.0, fuse-6.x-GA
    • jboss-fuse-6.3
    • None
    • None
    • % %
    • Fuse 7.0 Sprint 22

      If we have multiple swagger enabled cxf jaxrs endpoints in same bundle, each with different address, the swagger payload should be rendered separately in swagger-ui with different address url. We shouldn't see some clashes nor in one address we render all the endpoints from same bundle.
      For instance, if we have configuration like

      <jaxrs:server id="customerService" address="/crm">
              <jaxrs:serviceBeans>
                  <ref component-id="customerSvc"/>
              </jaxrs:serviceBeans>
              <jaxrs:providers>
                 <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
              </jaxrs:providers>
              <jaxrs:features>
                  <bean class="org.apache.cxf.jaxrs.swagger.Swagger2Feature">
                      <property name="title" value="Fabric8:CXF:Quickstarts - Customer Service" />
                      <property name="description" value="Sample REST-based Customer Service" />
                      <property name="version" value="${project.version}" />
                      <property name="resourcePackage" value="org.jboss.fuse.quickstarts.cxf.rest.customer"/>
                      <property name="basePath" value="/cxf/crm"/>
                      <property name="usePathBasedConfig" value="true"/>
                  </bean>
              </jaxrs:features>
          </jaxrs:server>
      
          <jaxrs:server id="orderService" address="/orm">
              <jaxrs:serviceBeans>
                  <ref component-id="orderSvc"/>
              </jaxrs:serviceBeans>
              <jaxrs:providers>
                 <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/>
              </jaxrs:providers>
              <jaxrs:features>
                  <bean class="org.apache.cxf.jaxrs.swagger.Swagger2Feature">
                      <property name="title" value="Fabric8:CXF:Quickstarts - Order Service" />
                      <property name="description" value="Sample REST-based Order Service" />
                      <property name="version" value="${project.version}" />
                      <property name="resourcePackage" value="org.jboss.fuse.quickstarts.cxf.rest.order"/>
                      <property name="basePath" value="/cxf/orm"/>
                      <property name="usePathBasedConfig" value="true"/>
                  </bean>
              </jaxrs:features>
          </jaxrs:server>
      

      then in swagger-ui, we should be able to see different swagger payload with address
      http://localhost:8181/cxf/orm/swagger.json
      http://localhost:8181/cxf/crm/swagger.json

      Each have different swagger for different endpoint above only

        1. apache-cxf-3.1.5.redhat-630310-features.xml
          36 kB
        2. cxf-rt-rs-service-description-3.1.5.redhat-630310.jar
          97 kB
        3. ENTESB-7548-new.patch
          13 kB
        4. patch.txt
          13 kB
        5. rest.tar
          78 kB
        6. rest-6.3.tar
          123 kB

            yfang@redhat.com Freeman(Yue) Fang
            yfang@redhat.com Freeman(Yue) Fang
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: