SmallRye OpenAPI
SmallRye OpenAPI is an implementation of Eclipse MicroProfile OpenAPI.
Instructions
Compile and install this project:
mvn clean install
Project structure
-
core - The core OpenAPI code, independent of entry point dependencies.
-
extension-jaxrs - The JAX-RS entry point. This module depends on JAX-RS and core.
-
extension-spring - The Spring entry point. This module depends on Spring and core.
-
extension-vertx - The Vert.x entry point. This module depends on Vert.x and core.
-
implementation - Implementation of the Eclipse MicroProfile OpenAPI specification. This just pulls in Core and the JAX-RS extension .
-
testsuite - Test Suites and Data
-
maven-plugin - Maven plugin that creates the OpenAPI Schema on build.
Configuration Extensions
-
Property Naming Strategy
mp.openapi.extensions.smallrye.property-naming-strategy
Define a naming strategy to be used globally for all schema properties. Set to one of the following:
-
A standard JSON-B naming strategy (listed in
jakarta.json.bind.config.PropertyNamingStrategy
/javax.json.bind.config.PropertyNamingStrategy
) -
A fully-qualified class name of an implementation of a JSON-B property naming strategy (
jakarta.json.bind.config.PropertyNamingStrategy
orjavax.json.bind.config.PropertyNamingStrategy
) -
A fully-qualified class name of an implementation of a Jackson property naming strategy base class (
com.fasterxml.jackson.databind.PropertyNamingStrategies.NamingBase
). Only thetranslate
method is utilized.
-
-
Removal of unused schemas
mp.openapi.extensions.smallrye.remove-unused-schemas.enable
Set to
true
enable automatic removal of unused schemas fromcomponents/schemas
in the OpenAPI model. Unused schemas will be removed following annotation scanning but prior to running anyOASFilter
that may be configured. Default value isfalse
. -
Automatic Schema Inheritance
mp.openapi.extensions.smallrye.auto-inheritance
Configures handling of schema inheritance. Allowed values include
NONE
(default),BOTH
, andPARENT_ONLY
.-
NONE
disables automatic schema inheritance. Parent class properties will be includes in the properties map of each child class unless@Schema(allOf = { β¦β })
has been specified on the child class. -
BOTH
enables automatic schema inheritance by placing both the child and parent class within the child schemaβsallOf
property unless@Schema(allOf = { β¦β })
has already been specified on the child class.BOTH
processing can be selectively disabled on individual classes by setting@Schema(allOf = void.class)
on the child class and noallOf
will be set on the resulting schema - parent and child properties will be present in the child schema as ifNONE
were used. -
PARENT_ONLY
enables automatic schema inheritance by placing only the parent class within the child schemaβsallOf
property unless@Schema(allOf = { β¦β })
has already been specified on the child class.PARENT_ONLY
processing can be selectively disabled on individual classes by setting@Schema(allOf = void.class)
on the child class and noallOf
will be set on the resulting schema - parent and child properties will be present in the child schema as ifNONE
were used.
-
-
Duplicate Operation ID Behavior
mp.openapi.extensions.smallrye.duplicateOperationIdBehavior
Set to
FAIL
to abort in case of duplicate operationIds, set toWARN
to log warnings when the build encounters duplicate operationIds. Default value isWARN
. -
Maximum Static File Size
mp.openapi.extensions.smallrye.maximumStaticFileSize
Set this value in order to change the maximum threshold for processed static files, when generating model from them. If not set, it will default to 3 MB.