June 2023
-
openapi-processor-spring/micronaut 2023.2
nested generic types
It is now possible to create type mappings with nested generics types. Here are a few examples:
openapi-processor-mapping: v3
options:
package-name: generated
map:
types:
- type: Foo => java.util.Map<java.lang.String, java.util.List<java.lang.String>>
paths:
/foo:
responses:
- content: application/json => java.util.Map<java.lang.String, java.lang.String>
/foo2:
responses:
- content: application/json => java.util.Map<java.lang.String, java.util.List<java.lang.String>>
This is useful to map an OpenAPI dictionary description using additionalProperties
to a proper java map type:
# a schema the defines a dictionary with string keys and string values
Map:
type: object
additionalProperties:
type: string
annotation mapping allows class parameter
annotation mapping now accepts a java class type as parameter. It is possible to add a mapping like this:
openapi-processor-mapping: v3
map:
types:
- type: string:foo @ io.oap.Annotation (value = io.oap.Bar.class)
improved validation output
schema validation by the internal parser has simpler & better output based on the JSON schema basic output format. It is not perfect but it is getting better.
It will provide better help on where the error is, but it may report multiple ambiguous errors.
If a schema property uses anyOf
or oneOf
and all possibilities don’t match (e.g. because there is a spelling error) the validator can’t know which one was meant and complains about all of them.
An example:
the error the value does not validate against the 'false' schema at instance …
usually means that a property has a spelling error.
If the OpenAPI allows a $ref
at the same location the validator reports a second error should have a property '$ref' at instance …
because a reference object must have a $ref
property.