On Sun, Nov 24, 2024 at 08:13:01PM -0500, apache-karaf-user.pyr3x.com via user 
wrote:
> On Sun, Nov 24, 2024 at 08:05:16PM -0500, apache-karaf-user.pyr3x.com via 
> user wrote:
> > On Tue, Nov 19, 2024 at 11:06:28AM -0500, apache-karaf-user.pyr3x.com via 
> > user wrote:
> > > On Tue, Nov 19, 2024 at 09:18:36AM -0500, apache-karaf-user.pyr3x.com via 
> > > user wrote:
> > > > On Fri, Nov 15, 2024 at 09:59:30PM -0500, apache-karaf-user.pyr3x.com 
> > > > via user wrote:
> > > > > On Fri, Nov 15, 2024 at 11:06:58AM -0500, apache-karaf-user.pyr3x.com 
> > > > > via user wrote:
> > > > > > On Thu, Nov 14, 2024 at 08:38:51AM -0500, 
> > > > > > apache-karaf-user.pyr3x.com via user wrote:
> > > > > > > On Thu, Nov 14, 2024 at 08:19:10AM -0500, 
> > > > > > > apache-karaf-user.pyr3x.com via user wrote:
> > > > > > > > 
> > > > > > > > On Wed, Nov 13, 2024 at 08:48:01PM -0500, Paul Spencer wrote:
> > > > > > > > > Chaz,
> > > > > > > > > 
> > > > > > > > > I have JSON endpoints in karat 4.4.3 using annotations see 
> > > > > > > > > https://lists.apache.org/thread/bfpvpw5kx52vk49kpoo5ztolsh8j2j9f
> > > > > > > > > 
> > > > > > > > > Some information that will make it easier to assist:
> > > > > > > > > 
> > > > > > > > > 1) What are the versions of 
> > > > > > > > >  - Karaf
> > > > > > > > > - Swagger
> > > > > > > > > 
> > > > > > > > > 2) What entries are you seeing in the karaf log file?
> > > > > > > > > - When you component start.  ( I would expect the endpoint 
> > > > > > > > > and path to be logged)
> > > > > > > > > - When you make a http request to the end point
> > > > > > > > > - Web related errors
> > > > > > > > > 
> > > > > > > > > Per you testing question I do not use Swagger UI, but the 
> > > > > > > > > REST test in karaf tests is a place to start.
> > > > > > > > >     
> > > > > > > > > https://github.com/apache/karaf/blob/karaf-4.4.6/itests/test/src/test/java/org/apache/karaf/itests/examples/RestExampleTest.java
> > > > > > > > > 
> > > > > > > > > Paul Spencer 
> > > > > > > > > 
> > > > > > > > > > On Nov 13, 2024, at 7:43 PM, apache-karaf-user.pyr3x.com 
> > > > > > > > > > via user <user@karaf.apache.org> wrote:
> > > > > > > > > > 
> > > > > > > > > > On Tue, Nov 12, 2024 at 11:46:29AM -0500, 
> > > > > > > > > > apache-karaf-user.pyr3x.com via user wrote:
> > > > > > > > > >> On Sun, Nov 10, 2024 at 07:05:33AM -0500, 
> > > > > > > > > >> apache-karaf-user.pyr3x.com via user wrote:
> > > > > > > > > >>> On Tue, Nov 05, 2024 at 12:07:50PM -0500, 
> > > > > > > > > >>> apache-karaf-user.pyr3x.com via user wrote:
> > > > > > > > > >>>> Hello,
> > > > > > > > > >>>> 
> > > > > > > > > >>>> I'm running Karaf and have installed the the following 
> > > > > > > > > >>>> features:
> > > > > > > > > >>>> 
> > > > > > > > > >>>> 'aries-jax-rs-whiteboard-whiteboard'
> > > > > > > > > >>>> 'aries-jax-rs-whiteboard-openapi'
> > > > > > > > > >>>> 
> > > > > > > > > >>>> I have a class with the following annotations:
> > > > > > > > > >>>> 
> > > > > > > > > >>>> @Component(
> > > > > > > > > >>>>    service = {Blah.class, OpenAPI.class},
> > > > > > > > > >>>>    immediate = true,
> > > > > > > > > >>>>    configurationPolicy = ConfigurationPolicy.OPTIONAL)
> > > > > > > > > >>>> @OpenAPIDefinition(info =
> > > > > > > > > >>>>    @Info(
> > > > > > > > > >>>>      title = "${project.name}",
> > > > > > > > > >>>>      version = "${project.version}"
> > > > > > > > > >>>>    )
> > > > > > > > > >>>> )
> > > > > > > > > >>>> @Path("coolapp")
> > > > > > > > > >>>> @JaxrsResource
> > > > > > > > > >>>> @Consumes(MediaType.APPLICATION_JSON)
> > > > > > > > > >>>> @Produces(MediaType.APPLICATION_JSON)
> > > > > > > > > >>>> @JSONRequired
> > > > > > > > > >>>> @Designate(ocd = Configuration.class)
> > > > > > > > > >>>> @Slf4j
> > > > > > > > > >>>> public class Blah extends OpenAPI {
> > > > > > > > > >>>> 
> > > > > > > > > >>>> 
> > > > > > > > > >>>> I can access the openapi.yaml at 
> > > > > > > > > >>>> http://localhost:8181/openapi.yaml
> > > > > > > > > >>>> 
> > > > > > > > > >>>> How do I make use of the swagger-ui to test my endpoints?
> > > > > > > > > >>>> 
> > > > > > > > > >>>> I've tried to install the feature to add it:
> > > > > > > > > >>>> 
> > > > > > > > > >>>> 'feature:info cxf-rs-description-openapi-v3'
> > > > > > > > > >>>> 
> > > > > > > > > >>>> But can't seem to find the endpoint where it's running 
> > > > > > > > > >>>> (if it is)
> > > > > > > > > >>>> 
> > > > > > > > > >>>> Any help would be appreciated!
> > > > > > > > > >>>> 
> > > > > > > > > >>>> -- 
> > > > > > > > > >>>> Chaz
> > > > > > > > > >>> 
> > > > > > > > > >>> ping
> > > > > > > > > >>> 
> > > > > > > > > >>> -- 
> > > > > > > > > >>> Chaz
> > > > > > > > > >> 
> > > > > > > > > >> ping :(
> > > > > > > > > >> 
> > > > > > > > > >> -- 
> > > > > > > > > >> Chaz
> > > > > > > > > > 
> > > > > > > > > > anyone?
> > > > > > > > > > 
> > > > > > > > > > -- 
> > > > > > > > > > Chaz
> > > > > > > > > 
> > > > > > > > 
> > > > > > > > Hi Paul,
> > > > > > > > 
> > > > > > > > Yes that first link was me trying to get my REST endpoint 
> > > > > > > > deployed. To
> > > > > > > > be clear I am able to deploy just fine and hit all my endpoints 
> > > > > > > > with
> > > > > > > > curl. I've also been able to deploy OpenAPI to generate me the
> > > > > > > > openapi.json which describes my endpoints located at
> > > > > > > > http://localhost:8181/openapi.{yaml|json}
> > > > > > > > 
> > > > > > > > What I haven't been able to do is deploy the swagger ui which 
> > > > > > > > generates
> > > > > > > > the pretty documentation to show the endpoints and allow you to
> > > > > > > > interactively use them for testing based on the generated 
> > > > > > > > openapi
> > > > > > > > descriptor.
> > > > > > > > 
> > > > > > > > According to https://cxf.apache.org/docs/openapifeature.html
> > > > > > > > 
> > > > > > > > I should be fine to access this somewhere. I confirmed that 
> > > > > > > > installing
> > > > > > > > the feature 'cxf-rs-description-openapi-v3' takes care of 
> > > > > > > > installing
> > > > > > > > Swagger UI. I would expect to be able to go to a url like
> > > > > > > > http://localhost:8181/endpoint?api-url=/openapi.json or similar 
> > > > > > > > and see
> > > > > > > > the generated documentation site but I can't seem to get it to 
> > > > > > > > work.
> > > > > > > > 
> > > > > > > > -- 
> > > > > > > > Chaz
> > > > > > > 
> > > > > > > Sorry I meant to say I should be able to see the website at the
> > > > > > > following location:
> > > > > > > 
> > > > > > > http://localhost:8181/api-docs/?url=/openapi.yaml
> > > > > > > 
> > > > > > > http://localhost:8181/openapi.yaml exists and describes my 
> > > > > > > endpoints
> > > > > > > which I can curl.
> > > > > > > 
> > > > > > > -- 
> > > > > > > Chaz
> > > > > > 
> > > > > > Someone must have been successful in deploying swagger-ui on karaf 
> > > > > > :(
> > > > > > 
> > > > > > -- 
> > > > > > Chaz
> > > > > 
> > > > > I'm using the Open API Integration in Aries JAX-RS Whiteboard
> > > > > 
> > > > > https://github.com/apache/aries-jax-rs-whiteboard/blob/master/integrations/openapi/README.md
> > > > > 
> > > > > I'm also following:
> > > > > 
> > > > > https://cxf.apache.org/docs/openapifeature.html
> > > > > 
> > > > > However, instead of blueprint I'm using DS
> > > > > 
> > > > > I'm adding the feature 'cxf-rs-description-openapi-v3'
> > > > > 
> > > > > As I noted before http://localhost:8181/openapi.json is being created
> > > > > which describes my endpoints.
> > > > > 
> > > > > The problem is after I 'install mvn:org.webjars/swagger-ui/3.23.8' it
> > > > > appears it's not being picked up to produce the api-docs. The
> > > > > http://localhost:8181/cxf/services does not produce the link to the
> > > > > swagger docs.
> > > > > 
> > > > > I'm using Karaf 4.4.6. Has something messed this resource loading up? 
> > > > > As
> > > > > I understand it the activator should fine that the resources from the
> > > > > swagger-ui are available and set it up in the context.
> > > > > 
> > > > > -- 
> > > > > Chaz
> > > > 
> > > > OK. I think I've narrowed this down. I can get the Swagger UI working
> > > > with example bundles that use blueprint to configure everything.
> > > > However, I'm using the Aries JAX-RS whiteboard annotations. I noticed in
> > > > the example bundle that they enable jaxrs feature for openApiFeature.
> > > > How can I do this through declarative services or through JAX-RS
> > > > whiteboard annotations?
> > > > 
> > > >     <jaxrs:server id="sampleServer" address="/swaggerSample">
> > > >         <jaxrs:serviceBeans>
> > > >             <ref component-id="sampleResource" />
> > > >         </jaxrs:serviceBeans>
> > > >         <jaxrs:providers>
> > > >             <ref component-id="jsonProvider" />
> > > >         </jaxrs:providers>
> > > >         <jaxrs:features>
> > > >             <ref component-id="openApiFeature" />
> > > >         </jaxrs:features>
> > > >     </jaxrs:server>
> > > > 
> > > > -- 
> > > > Chaz
> > > 
> > > Is there a way to publish my resource to the cxf context? It looks like
> > > the swagger ui integration is expecting it to be published within that
> > > context versus my own that is generated automatically as part of the JAX
> > > RS whiteboard pattern. I really want to use Swagger UI to view my
> > > endpoints from the generated openapi.json from the JAX RS whiteboard
> > > integration with openapi.
> > > 
> > > -- 
> > > Chaz
> > 
> > I'm still fighting with this. I'd love any support in resolving this.
> > 
> > -- 
> > Chaz
> 
> Using the JAX-RS Whiteboard with the OpenAPI integration uses the
> default application base of /. It properly generates the openapi.json
> and I can navigate to it. When I deploy the sample bundle with blueprint
> see how it adds the line for OpenAPI? I don't know why my bundle is not
> doing the same.
> 
> Attached.
> 
> -- 
> Chaz

I've played with this for a number of days and despite all my attempts I
cannot seem to get this to work. If anyone has a moment I'm happy to
work with them to test anything to get it to work.

-- 
Chaz

Reply via email to