Skip to content

Releases: openapi-processor/openapi-processor-spring

1.0.0.M20

08 Nov 14:58
Compare
Choose a tag to compare
1.0.0.M20 Pre-release
Pre-release
  • 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 of java.lang.String

  • (core) a ref loop with array items caused a NullPointerException

  • updated openapi-processor-core to 1.3.0 (was 1.2.1)

1.0.0.M19

13 Oct 06:53
Compare
Choose a tag to compare
1.0.0.M19 Pre-release
Pre-release
  • 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 an Object return type of the endpoint.
  • updated openapi-processor-core to 1.2.1 (was 1.2.0)

1.0.0.M18

11 Oct 14:26
Compare
Choose a tag to compare
1.0.0.M18 Pre-release
Pre-release
  • add @NotNull if nullable 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 the package-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

16 Sep 20:11
Compare
Choose a tag to compare
1.0.0.M17 Pre-release
Pre-release

1.0.0.M16

09 Aug 17:10
Compare
Choose a tag to compare
1.0.0.M16 Pre-release
Pre-release

1.0.0.M15

29 Jun 14:54
Compare
Choose a tag to compare
1.0.0.M15 Pre-release
Pre-release
  • #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

19 Jun 16:39
Compare
Choose a tag to compare
1.0.0.M14 Pre-release
Pre-release

improvements

  • target java 1.8
  • improved file handling
  • updated dependencies
  • reduced dependencies

1.0.0.M13

01 May 16:01
Compare
Choose a tag to compare
1.0.0.M13 Pre-release
Pre-release

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 of ResponseEntity<String>. It is set using the result mapping.

    map:
      result:
        to: org.springframework.http.ResponseEntity
    
  • there is a new single mapping that wraps non-array like result types with the given single mapping type. It works together with the result mapping, allowing a ResponseEntity<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 given multi mapping type. For example it will replace List<String> with Flux<String> using the mapping below. It works together with the result mapping, allowing a ResponseEntity<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

08 Mar 08:01
Compare
Choose a tag to compare
1.0.0.M12 Pre-release
Pre-release

improvements

  • #91, support for composed schemas using allOf, anyOf or oneOf. The processor does create the single model classes. except the combined model class for allOf.

  • use the paths 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'
          }
    
      }
    

1.0.0.M11

01 Mar 10:46
Compare
Choose a tag to compare
1.0.0.M11 Pre-release
Pre-release

improvements

fixes

  • #84, handle $ref loops
  • #83, rename cleanup