If anyone ever needs it (I will try to further improve the code and documentation): https://github.com/maggu2810/jaxrswb
Am Mo., 25. Nov. 2019 um 13:28 Uhr schrieb Markus Rathgeb <maggu2...@gmail.com>: > > Hi again, > > as written before, the provided scanner does not work (for me) using > different bundles / classpathes and multiple applications. > > Because of this I implemented yesterday the some wrapping of it myself. > > The implementation tries to identify ever JAX-RS resource (using > service property filter) and its application (using object class and > target filter with respect of the JAX-RS resource application select). > After that it generates a map. > The key consists of the "base path" (the path of the application) -- > so we can support as many applications as provided. > The value consists of the classes that implement the JAX-RS resource. > > This map is used to fill the OpenAPI JAX-RS reader. > > The generated OpenAPI can be used to generate the JSON reply. > But I don't want to rely on a special message body writer and the > knowledge if the implementation serialize null references etc. (the > Swagger UI does not work with every JSON serializer). > So, I added a method that converts the "OpenAPI" into a > "Map<String,Object>" that can be used by the most JSON serializers and > generate a working result for the Swagger UI. > > The current snapshot can be found here: > https://github.com/maggu2810/playground-osgi/tree/128d162ff8aa1a73337b00f712fcc5ffe0b1b869/bundles/jaxrs-oapi-gen/src/main/java/de/maggu2810/playground/osgi/jaxrs/oapi/gen/impl > > Best regards, > Markus > > Am Sa., 23. Nov. 2019 um 13:29 Uhr schrieb Oliver Schweitzer > <oschweit...@me.com>: > > > > Hi Markus, > > > > I can't argue about that behavior, because the original code isn't mine. > > > > Take a look at > > https://github.com/swagger-api/swagger-core/blob/d17f81c7e7ba99157ec7b3ab324a16372885416c/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/resources/BaseOpenApiResource.java#L72 > > - that's where the serialization code you linked to is originally from. > > > > In the version I supplied as pull request, see > > https://github.com/osx2000/aries-jax-rs-whiteboard/blob/master/integrations/openapi/openapi-resource/src/main/java/org/apache/aries/jax/rs/openapi/OpenApiResource.java > > the code duplication from the Swagger BaseOpenApiResource is replaced by > > inheritance > > > > Best regards, > > > > Oliver > > > > -----Original Message----- > > From: Markus Rathgeb <maggu2...@gmail.com> > > Sent: 23 November 2019 11:59 > > To: user@aries.apache.org > > Subject: Re: Jax-RS Whiteboard and OpenAPI > > > > Hi Oliver, > > > > there is another thing I don't understand: > > Why you do not run into the following "problem" I ran with your code: > > > > https://github.com/osx2000/finmath-service/blob/master/bundles/service/src/main/java/de/osx2000/finmath/service/OpenApiResource.java#L125 > > > > If a "json" reply is generated you stringify the object already and place > > the JSON string representation of the object as entity in the response. > > As media type JSON is chosen... > > > > For me the message body writer for the media type JSON is picked up by > > JAX-RS to encode the response's entity. The entity object (a string that > > already is a valid JSON string) is then again stringified as JSON... > > > > Why is this not been the cause for your message body writer? > >