July 2023
-
openapi-processor-spring/micronaut 2023.3
object @ annotation
Using the object
keyword it is possible to add an annotation to all generated schema/model classes using a single annotation mapping:
map:
types:
- type: object @ lombok.Builder
The object
string represents all generated object classes (i.e. schema/model classes) and will add the given annotation only at the class level:
@Builder
@Generated(...)
public class Foo {
...
}
java records
openapi-processor is now capable of generating java record
s instead of pojos for schemas. This is a global setting in the mapping.yaml
. It can either have the value default
(which is default) to generate pojos or record
to generate records.
openapi-processor-mapping: v4
options:
model-type: record
With model-type: record
the processor will generate record
s like this:
package generated.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import generated.support.Generated;
@Generated(value = "openapi-processor-core", version = "test")
public record Foo(
@JsonProperty("bar")
String bar
) {}
and without model-type
or model-type: default
it will create a simple pojo:
package generated.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import generated.support.Generated;
@Generated(value = "openapi-processor-core", version = "test")
public class Foo {
@JsonProperty("bar")
private String bar;
public String getBar() {
return bar;
}
public void setBar(String bar) {
this.bar = bar;
}
}
java-format
option
openapi-processor uses google-java-format to format the generated files (including javadoc). Unfortunately it depends on internal jdk packages that are strongly encapsulated since JDK 16. It is necessary to tell the jdk to export a few packages.
In theory, it is not hard to configure it but in real life it is a bit fiddly to get this working. To get started without fighting with it, the default is now false
instead of true
.
To (re-)enable code formatting add the format-code
option to the mapping.yaml
:
openapi-processor-mapping: v4
options:
format-code: true