Skip to content

2026.3

Latest

Choose a tag to compare

@hauner hauner released this 20 Apr 22:10

Apart from a few fixes this release adds support for @HttpExchange based interfaces (#439).

Spring Boot provides two annotation families

  • the standard mapping annotations, i.e., @RequestMapping, @GetMapping and friends to define server side controllers

  • and the new exchange (HTTP service clients) annotations, i.e., @HttpExchange, @GetExchange and friends to define server side controllers and http clients based on the same interface.

This makes it possible to use the endpoint interfaces generated by openapi-processor-spring to call the endpoints. Spring does generate (with a few lines of configuration) the boilerplate code that is required to to call the api endpoints.

Switching between both annotation families is done in the mapping.yaml:

openapi-processor-spring: v1 # <1>

options:
  package-name: io.openapiprocesser

  spring: # <2>
    # default, i.e., mapping annotations
    #annotations: mapping
    # use exchange annotations
    annotations: exchange # <3>

There are a few things that are important here:

<1> the mapping identifier has changed. It is now expecting openapi-processor-spring instead of openapi-processor-mapping. The processor will still accept openapi-processor-mapping.

The new identifier is required to get proper editing support for the new option with the IntelliJ plugin.

<2> a new Spring specific section in the options object.

<3> the annotation family: mapping or exchange. With mapping being the default.

The openapi-processor-samples repository has a sample that provides an api endpoint and calls itself using the @HttpExchange based interface.

See the core release notes 2026.3 for the other changes.

dependency updates

  • updated openapi-processor-core to 2026.3