Hi Romain, Just went through the issues and comment threads. I am not really involved in MP (sadly) but the YAML+JSON discussion makes sense to me, at least from the platform perspective. JSON should be a must, YAML is optional (although it is very popular in OpenAPI community). My personal position regarding the builder vs annotations is a matter of choice / preference. There are centainly pros and cons of both, valid arguments are listed. I don't think either of them is perfect for everyone, supporting both options sounds like a good trade-off, let devs pick whatever fits better to the particular project / context.
The issue related to model serialization takes unexpected turn towards https://github.com/OpenAPITools project ... I don't know the full details but afaik these guys are forking Swagger projects (swagger-codegen notably) and rebranding under OpenApiTools umbrella. I am working on the PR https://github.com/swagger-api/swagger-codegen-generators/pull/101 to replace code generation of old Swagger / OpenAPI 2.x with OpenAPI 3.x (since Apache CXF supports that out of the box). If things work out here as expected, I would be happy to help to introduce MP part (server stubs or/and client) as well. Thanks. Best Regards, Andriy Redko RMB> Hi guys, RMB> opened several issues about the spec and a few of them are serious concerns RMB> for me (others are easier): RMB> 1. https://github.com/eclipse/microprofile-open-api/issues/231 RMB> 2. https://github.com/eclipse/microprofile-open-api/issues/230 RMB> 3. https://github.com/eclipse/microprofile-open-api/issues/228 RMB> Seems like there was no time to think about an API so swagger was just RMB> copied (and adapted to openapi) which leads to something quite inconsistent RMB> for end users and also inconsistent with the platform. RMB> It doesn't prevent us to implement it but would be great if some of you can RMB> check out issues and potentially vote for them. There is no Strong API RMB> stability requirement at microprofile so there is stilla hope the API is RMB> made simpler and usable by end users. RMB> In short (if you don't want to open the links) the issues are: RMB> 1. YAML is mandatory but there is nothing standard to modelize it so it is RMB> an internal of the implementation and the format is not user friendly until RMB> you use something outside the spec RMB> 2. The model is using OpenAPI object graph but it is not integrated with RMB> JSON-B so it is not (de)serializable correctly for end user. It also breaks RMB> the JAXRS serialization since each single object of the graph will need a RMB> custom message reader/writer to work (but the spec doesnt spec about that RMB> so payloads will not be the expected ones, in particular if you send back RMB> from a client which got OpenAPI instance some subgraph!) RMB> 3. There are 2 API in the spec: a builder one and an annotation driven one. RMB> The builder is sufficient and associated with a startup event allows to RMB> avoid the annotations need which just duplicates the builder 1-1 with very RMB> few semantic differences for ref and map management. RMB> In one sentence it means that the API could be easier, less ambiguous for RMB> end users, the integration with the platform more consistent and that it is RMB> a very simple investment and work. It just needs to be made portable RMB> accross vendor. RMB> Romain Manni-Bucau RMB> @rmannibucau <https://twitter.com/rmannibucau> | Blog RMB> <https://rmannibucau.metawerx.net/> | Old Blog RMB> <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | RMB> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book RMB> <https://www.packtpub.com/application-development/java-ee-8-high-performance> RMB> Le jeu. 21 juin 2018 à 16:20, Raymond Auge <raymond.a...@liferay.com> a RMB> écrit : >> Great! >> On Thu, Jun 21, 2018 at 10:12 AM, Romain Manni-Bucau < >> rmannibu...@gmail.com> wrote: >>> @Raymond: the diff between CDI and OSGi will be where the OpenAPI >>> instance will be created mainly so very doable (aries can even import >>> G-openapi for that). Only diff which can be quite intrusive is that @G we >>> don't use plain reflection to enable CDI meta model to be mutated during >>> startup and therefore let the user configure most of the model instead of >>> hardcoding it, but it is not that hard to abstract so I'm very confident to >>> keep it abstracted and to support OSGi once we support the spec with CDI >>> (and why not supporting CDI in aries ;)). >> Regarding supporting CDI in Aries ;) it should look pretty much like any >> normal CDI extension with a tiny amount of extra OSGi metadata and what I >> hope are very reasonable restrictions on how extensions provide beans, if >> any. >> Sincerely, >> - Ray >>> Romain Manni-Bucau >>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>> <https://rmannibucau.metawerx.net/> | Old Blog >>> <http://rmannibucau.wordpress.com> | Github >>> <https://github.com/rmannibucau> | LinkedIn >>> <https://www.linkedin.com/in/rmannibucau> | Book >>> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >>> Le jeu. 21 juin 2018 à 15:21, Raymond Auge <raymond.a...@liferay.com> a >>> écrit : >>>> It would be _nice_ if we could figure out a way for this to be usable by >>>> Apache Aries JAXRS Whiteboard [1] which is an implementation of OSGi JAXRS >>>> Whiteboard [2]. >>>> It would seem that a small SPI on the part of Geronimo's mp-openapi >>>> might be enough (so as not to pressure this up onto the mp spec). >>>> [1] https://github.com/apache/aries-jax-rs-whiteboard >>>> [2] https://osgi.org/specification/osgi.cmpn/7.0.0/service.jaxrs.html >>>> On Thu, Jun 21, 2018 at 9:06 AM, Mark Struberg < >>>> strub...@yahoo.de.invalid> wrote: >>>>> I think it fits well to geronimo. >>>>> The question is rather if CXF is fine with relying on CDI for openapi? >>>>> But since MicroProfile _requires_ CDI I think there is safe to assume >>>>> so. >>>>> LieGrue, >>>>> strub >>>>> > Am 21.06.2018 um 09:59 schrieb Romain Manni-Bucau < >>>>> rmannibu...@gmail.com>: >>>>> > >>>>> > Hello guys, >>>>> > >>>>> > we created a repo for that and to be able to share what we do: >>>>> > https://gitbox.apache.org/repos/asf?p=geronimo-openapi.git >>>>> > >>>>> > I pushed a basic starting structure of the code. The big TODO is the >>>>> > conversion from the model (annotations) to OpenAPI instance (which >>>>> should >>>>> > be somewhere here >>>>> > >>>>> https://gitbox.apache.org/repos/asf?p=geronimo-openapi.git;a=blob;f=src/main/java/org/apache/geronimo/microprofile/openapi/impl/processor/AnnotationProcessor.java;h=141227b579495e2b072710fadb28f2d08ab07616;hb=HEAD >>>>> > or split in multiple "visitors" if desired). >>>>> > >>>>> > If anyone wants to help it is welcomed. Also note it is not too late >>>>> to >>>>> > change the project hosting or other details if there is some points we >>>>> > missed until now. >>>>> > >>>>> > Romain Manni-Bucau >>>>> > @rmannibucau <https://twitter.com/rmannibucau> | Blog >>>>> > <https://rmannibucau.metawerx.net/> | Old Blog >>>>> > <http://rmannibucau.wordpress.com> | Github < >>>>> https://github.com/rmannibucau> | >>>>> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book >>>>> > < >>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance >>>>> > >>>>> > >>>>> > >>>>> > Le mar. 19 juin 2018 à 07:39, Romain Manni-Bucau < >>>>> rmannibu...@gmail.com> a >>>>> > écrit : >>>>> > >>>>> >> Basically read metadata from AnnotatedTypes (cdi) used by jaxrs cdi >>>>> >> extension. Im not yet sure i will need the extension itself or not >>>>> (doesnt >>>>> >> seem hard to not use it for that and would stay portable). >>>>> >> >>>>> >> >>>>> >> Le mar. 19 juin 2018 00:36, Andriy Redko <drr...@gmail.com> a écrit >>>>> : >>>>> >> >>>>> >>> Hey Romain, >>>>> >>> >>>>> >>> Thanks for starting work on that. Indeed, >>>>> >>> https://issues.apache.org/jira/browse/CXF-7601 is >>>>> >>> opened but not started yet, sadly. So what is your plan / scope, >>>>> generate >>>>> >>> the OpenAPI 3.x >>>>> >>> specs from JAX-RS 2.1 metadata? Or someting else? May be we could >>>>> also >>>>> >>> help you with that? >>>>> >>> Thanks! >>>>> >>> >>>>> >>> Best Regards, >>>>> >>> Andriy Redko >>>>> >>> >>>>> >>> RMB> Independent, cdi based (not reflection based) >>>>> >>> >>>>> >>> RMB> Le lun. 18 juin 2018 22:34, John D. Ament < >>>>> johndam...@apache.org> a >>>>> >>> écrit : >>>>> >>> >>>>> >>>>> If it's hosted at Geronimo will it be platform independent? Or >>>>> only >>>>> >>> work >>>>> >>>>> with CXF? >>>>> >>> >>>>> >>>>> On Mon, Jun 18, 2018, 3:30 PM Romain Manni-Bucau < >>>>> >>> rmannibu...@gmail.com> >>>>> >>>>> wrote: >>>>> >>> >>>>> >>>>>> Hi guys, >>>>> >>>>>> >>>>> >>>>>> I'm planning to implement microprofile-openapi at geronimo (next >>>>> to >>>>> >>> other >>>>> >>>>>> microprofile specs) soon (probably beginning of next month). >>>>> Before >>>>> >>> doing >>>>> >>>>>> so I wanted to get in touch with you to ensure it was not already >>>>> >>> there >>>>> >>>>>> (@asf). I know CXF has a swagger impl but here, we speak about a >>>>> new >>>>> >>> API >>>>> >>>>>> and I hope to make it dep free and aligned on other geronimo >>>>> impls >>>>> >>>>>> (assuming jsonb+jaxrs+cdi is in the server already which is very >>>>> >>>>> acceptable >>>>> >>>>>> for a MP server). >>>>> >>>>>> >>>>> >>>>>> Anything I should check before launching the project or is the >>>>> road >>>>> >>> as >>>>> >>>>> open >>>>> >>>>>> as I think? >>>>> >>>>>> >>>>> >>>>>> Technical side note: compared to the MP rest client which was way >>>>> >>> easier >>>>> >>>>> to >>>>> >>>>>> impl @cxf cause all the code was already there, the openapi is >>>>> more >>>>> >>> based >>>>> >>>>>> on CDI than CXF internal model so not hosting it @cxf is not an >>>>> >>> issue for >>>>> >>>>>> this one so don't feel any pressure please. >>>>> >>>>>> >>>>> >>>>>> Thanks, >>>>> >>>>>> Romain Manni-Bucau >>>>> >>>>>> @rmannibucau <https://twitter.com/rmannibucau> | Blog >>>>> >>>>>> <https://rmannibucau.metawerx.net/> | Old Blog >>>>> >>>>>> <http://rmannibucau.wordpress.com> | Github < >>>>> >>>>>> https://github.com/rmannibucau> | >>>>> >>>>>> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book >>>>> >>>>>> < >>>>> >>>>>> >>>>> >>>>> >>>>> >>> >>>>> https://www.packtpub.com/application-development/java-ee-8-high-performance >>>>> >>>>>>> >>>>> >>>>>> >>>>> >>> >>>>> >>> >>>>> >>> >>>> -- >>>> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> >>>> (@rotty3000) >>>> Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> >>>> (@Liferay) >>>> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> >>>> (@OSGiAlliance) >> -- >> *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> >> (@rotty3000) >> Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> >> (@Liferay) >> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> >> (@OSGiAlliance)