Releases: openapi-processor/openapi-processor-spring
1.0.0.M20
-
openapi-processor/openapi-processor-core#30 (core), preserve the "?" generic parameter of a mapping and pass it on to the generated api, e.g. a mapping like
map: paths: /foo: parameters: - add: foo => io.openapiprocessor.Foo<?>
does now generate
void foo(Foo<?> foo);
instead of
void foo(Foo foo);
-
#119 (core), primitive type could match a primitive type with format mapping, e.g. with the mapping
openapi-processor-spring: v2 map: types: - type: string:binary => io.openapiprocessor.Foo
it was possible that a primitive string was mapped to
io.openapiprocessor.Foo
instead ofjava.lang.String
-
(core) a ref loop with array
items
caused aNullPointerException
-
updated openapi-processor-core to 1.3.0 (was 1.2.1)
1.0.0.M19
- the internal representation of an empty response (ie. without any response data) leaked to the generated code. Visible by a
produces = {"?"}
in the mapping annotation and anObject
return type of the endpoint. - updated openapi-processor-core to 1.2.1 (was 1.2.0)
1.0.0.M18
-
add
@NotNull
ifnullable
is default (i.e. true) and bean validation is enabled. -
openapi-processor/openapi-processor-core#20, the type mapping (v2 only) configuration allows to reference the target
package-name
in generic parameters using the{package-name}
expression. This makes it possible to adjust thepackage-name
without touching the mapping and it can reduce duplication if the mapping contains many generic parameters.openapi-processor-mapping: v2 options: package-name: io.openapiprocessor.generated.model map: types: - type: FooPage => org.springframework.data.domain.Page<{package-name}.Foo>
-
openapi-processor/openapi-processor-core#21, a primitive type with a custom format (not defined by the OpenAPI specification) did break processing. The processor does now ignore unknown custom formats. For example the following definition
type: string format: unknown-custom-format
will be processed as if it has no format at all:
type: string
-
openapi-processor/openapi-processor-core#22, mapping of primitive schemas did not work. It is now possible to have a primitive schema
components: schemas: Foo: type: string
and map this to a specific target java type:
openapi-processor-spring: v2 map: types: - type: Foo => io.openapiprocessor.sample.Foo
-
#23, parameter $ref's were not resolved when processing with the openapi4j parser.
-
updated openapi-processor-core to 1.2.0 (was 1.1.1)
-
updated openapi4j parser to 1.0.4 (was 1.0.3)
1.0.0.M17
1.0.0.M16
- #113, support for OpenAPI deprecated property
- #114, improved header of generated source files (added version & generation time, fixed link)
- update to openapi-processor-core 1.1.0
- openapi-processor/openapi-processor-core#12, fix windows path/url handling, i.e.
unknown protocol: c
1.0.0.M15
- #102, simpler mapping format
- #99, extracted core library to create processors for other frameworks (e.g. micronaut)
- #106, changed artifact group id. New artifact coordinates:
io.openapiprocessor:openapi-processor-spring:1.0.0.M15
- new repository: https://dl.bintray.com/openapi-processor/primary
1.0.0.M14
improvements
- target java 1.8
- improved file handling
- updated dependencies
- reduced dependencies
1.0.0.M13
improvements
-
the result wrapper is no longer fixed to
ResponseEntity<>
. The default is no result wrapper. The endpoints now return the plain response type, e.g.String
instead ofResponseEntity<String>
. It is set using theresult
mapping.map: result: to: org.springframework.http.ResponseEntity
-
there is a new
single
mapping that wraps non-array like result types with the givensingle
mapping type. It works together with theresult
mapping, allowing aResponseEntity<Mono<...>>
endpoint response.map: single: to: reactor.core.publisher.Mono
-
there is a new
multi
mapping that replaces array like result types or parameters with the givenmulti
mapping type. For example it will replaceList<String>
withFlux<String>
using the mapping below. It works together with theresult
mapping, allowing aResponseEntity<Flux<...>>
endpoint response.map: multi: to: reactor.core.publisher.Flux
-
#96, improved creation of valid java identifier for identifier names from an openapi.yaml file.
1.0.0.M12
improvements
-
#91, support for composed schemas using
allOf
,anyOf
oroneOf
. The processor does create the single model classes. except the combined model class forallOf
. -
use the
path
s operation id (if available) to create the method identifier of the path:paths: /foo: get: operationId: get-bar responses: ...
will create the following method name
@GetMapping(path = "/foo") ResponseEntity<...> getBar();
if no
operationId
is available, the name is created from path (foo) and http method (get):@GetMapping(path = "/foo") ResponseEntity<...> getFoo();
-
openapi4j parser support. It provides better validation information. To select the parser set the
parser
in the processor configuration (gradle):openapiProcessor { spring { // ... other configuration // sets the parser to SWAGGER or OPENAPI4J. if not set SWAGGER is used. parser 'OPENAPI4J' } }