Repository navigation
Description
Is your feature request related to a problem? Please describe.
This feature requests is intended to get another, completely different implementation of the current jax-rs one.
The current implementation depends on io.swagger imports, as well as jackson as Json provider.
However, with microprofile, new vendor-agnostic APIs have arrived.
Describe the solution you'd like
The new implementation is implementation- and vendor-agnostic.
It is "just" a new set of templates which can easily be derived from the existing ones.
org.eclipse.microprofile.openapi.annotationsinstead ofio.swagger.javax.jsoninstead ofcom.fasterxml.jackson.
Benefits:
Most applicaiton servers, like OpenLiberty, already ship those MicroProfile standards.
When not using this generator, we could ship our applications without jackson and/or swagger dependencies.
The new dependencies are:
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
<scope>provided</scope>
</dependency>
<!-- JSON-B API -->
<dependency>
<groupId>jakarta.json.bind</groupId>
<artifactId>jakarta.json.bind-api</artifactId>
<version>1.0.2</version>
<scope>provided</scope>
</dependency>
<!-- JSON API -->
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>1.1.6</version>
<scope>provided</scope>
</dependency>
<!-- OpenAPI -->
<dependency>
<groupId>org.eclipse.microprofile.openapi</groupId>
<artifactId>microprofile-openapi-api</artifactId>
<version>1.1.2</version>
<scope>provided</scope>
</dependency>Optional:
Instead of javax, prefer the new jakarta namespace:
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>2.1.6</version>
<scope>provided</scope>
</dependency>Describe alternatives you've considered
Using the current "jax-rs" implementation which is in fact "non-jakarta jax-rs plus Jackson plus swagger".
Bloats the war file due to shipping jackson and swagger
Additional context
- Guide from openliberty, which works in fact for every microprofile server:
https://openliberty.io/guides/microprofile-openapi.html - Json-B (Json Binding API):
http://json-b.net/
https://jakarta.ee/specifications/jsonb/ - Json-P (Json Parser API):
https://github.com/eclipse-ee4j/jsonp
https://eclipse-ee4j.github.io/jsonp/
Activity
bmarwell commentedon Jul 7, 2020
Example for a value class using jsonb and OpenAPI annotations:
yeekangc commentedon Jul 7, 2020
@turkeylurkey
asterisk360-admin commentedon Nov 25, 2020
there is any update of this enhancement?
bmarwell commentedon Nov 25, 2020
I would still like to see this as well. Currently I am recreating my classes by hand
bmarwell commentedon Dec 1, 2020
@yeekangc @turkeylurkey can you ping someone to look at this?
yeekangc commentedon Dec 1, 2020
Taking a look, @bmarwell. Will see what can be done. Thanks.
asterisk360-admin commentedon Dec 1, 2020
@bmarwell @yeekangc @turkeylurkey.
It would be great to generate the client using the microprofile-rest-client api.
Emily-Jiang commentedon Dec 8, 2021
Any progress made on this one @yeekangc @turkeylurkey ?
joschi commentedon Dec 18, 2021
Given the combined expertise of the people commenting in this issue, maybe one of you would like to contribute a generator: https://openapi-generator.tech/docs/new-generator
bmarwell commentedon Dec 19, 2021
it is even easier. You don't need a new generator, just a modified copy of some templates!
See: https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources/JavaJaxRS
igbluz commentedon Mar 1, 2022
Hi @bmarwell, @yeekangc @turkeylurkey I am also interested in using openapi-generator within the new OL 22.0.0.x Version with Microprofile 5. Actually there is missing the jakarta imports. Is there somebody doing some effort in adapting the templates? Shouldn't the community provide some templates compatible with JakartaEE? I am not an expert on openapi-generator enhancing, we just use it, but I'm willing to contribute. How can we assure that the right solution will be done?
Krabbee commentedon Apr 26, 2022
Hi, is there any updates on Jakarta upgrade?
sans17 commentedon Sep 13, 2022
I see another issue open:
#13124
rignicat commentedon Oct 17, 2025
I created a PR that (mostly) implements this - at least good enough for my use case. Feel free to comment or expand this initial PR #22169