Chapter 58. OpenAPI Java
Expose OpenAPI resources defined in Camel REST DSL
58.1. What’s inside Copy linkLink copied to clipboard!
Please refer to the above link for usage and configuration details.
58.2. Maven coordinates Copy linkLink copied to clipboard!
Create a new project with this extension on code.quarkus.redhat.com
Or add the coordinates to your existing project:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-openapi-java</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-openapi-java</artifactId>
</dependency>
58.3. Usage Copy linkLink copied to clipboard!
You can use this extension to expose REST DSL services to Quarkus OpenAPI. With quarkus-smallrye-openapi
, you can access them by /q/openapi?format=json
.
Refer to the Quarkus OpenAPI guide for further information.
This is an experimental feature. You can enable it by
quarkus.camel.openapi.expose.enabled=true
quarkus.camel.openapi.expose.enabled=true
It’s the user’s responsibility to use @RegisterForReflection
to register all model classes for reflection.
It doesn’t support the rest services used in org.apache.camel.builder.LambdaRouteBuilder
right now. Also, it can not use CDI injection in the RouteBuilder configure()
since we get the rest definitions at build time while CDI is unavailable.
58.4. Camel Quarkus limitations Copy linkLink copied to clipboard!
The apiContextIdListing
configuration option is not supported. Since multiple CamelContext`s are not supported and Quarkus applications run standalone, there is no scenario where attempting to resolve OpenApi specifications for a specific `CamelContext
would be useful. It also introduces some additional overhead of requiring JMX (which is not supported in native mode) & additional Camel Quarkus extensions for processing XML.