Lombok 주석이 있는 OpenAPI 생성기를 사용하여 POJO 생성
모델용 Java 클라이언트 코드 생성을 위해 아래와 같은 OpenAPI generator maven 플러그인을 사용하고 있습니다.
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.3.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
<generatorName>java</generatorName>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
모델 클래스를 생성하면 일반적인 POJO 필드 선언과 게터 및 세터로 생성됩니다.하지만 제가 하고 싶은 것은 게터와 세터를 생성하는 대신, 저는 제 수업이 다음과 같은 자바 포조를 위한 롬복 주석으로 자동 생성되기를 바랍니다.@Getter,@Setter,@Data기타. 위의 사용 사례 요구 사항에 맞게 모델 생성기를 사용자 정의할 수 있는 방법이 있습니까?
저는 방법이 있는지 알아보려고 노력했습니다.저는 롬복 주석을 사용하여 모델을 생성하는 문제가 다뤄진 PR에 대한 마지막 의견이 있는 이 토론을 찾았습니다.그러나 OpenAPI 생성기 오픈 소스 프로젝트에서 아직 구현된 이 기능에 대한 명확한 사용 표시나 문서가 보이지 않습니다.그렇다면, 오늘날 일반적인 게터와 세터 대신 롬복 주석으로 모델을 생성하는 방법은 없을까요?
이 오래된 스레드를 완료하려면:이제 Lombok 주석을 지원합니다.
여기서 예를 들어 보겠습니다.
<configOptions>
<additionalModelTypeAnnotations>@lombok.Builder @lombok.NoArgsConstructor @lombok.AllArgsConstructor</additionalModelTypeAnnotations>
</configOptions>
편집: 이 답변은 더 이상 사용되지 않습니다.@Laess3r의 게시물을 참조하십시오.이것은 이전 버전의 openapi generator에 적용 가능하기 때문에 남겨두겠습니다.
openapi-generator아직 Lombok 주석을 지원하지 않습니다.롬복 주석으로 코드를 생성하려면 다음에서 사용자 정의 템플릿을 생성해야 합니다.mustachehttps://openapi-interval.tech/messaging/에 설명된 대로입니다.
함께 일해본 적이 없는 경우mustache읽기가 다소 어려우므로 템플릿을 최대한 단순하게 유지하고 생성된 출력의 유효성을 검사하기 위해 단위 테스트를 추가해야 합니다.템플릿은 다음과 같이 표시됩니다.
/**
* {{#description}}{{description}}{{/description}}
*/
@Data
public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}} {
{{#vars}}
/**
* {{#description}}{{description}}{{/description}}
*/
@JsonProperty("{{#lambda.lowercase}}{{nameInSnakeCase}}{{/lambda.lowercase}}")
private {{{datatypeWithEnum}}} {{name}};
{{/vars}}
모델에 대한 주석 목록을 공백으로 구분하여 사용하여 바로 사용할 수 있습니다.
@lombok.experimental.SuperBuilder @lombok.external.Jacksonized
모델의 경우readOnly"참"으로 설정된 Builder는 객체를 만드는 유일한 방법이 되고,@Jacksonized직렬화/직렬화할 수 있습니다.상속에는 몇 가지 제한이 있습니다(configOptions에 필요한 모든 매개 변수를 요구하는 해제).
언급URL : https://stackoverflow.com/questions/65733938/generating-pojos-using-openapi-generator-with-lombok-annotations
'programing' 카테고리의 다른 글
| Elastic Beansstalk Java, 스프링 활성 프로파일 (0) | 2023.07.01 |
|---|---|
| MongoDB + Elastic search 아니면 Elastic search만? (0) | 2023.07.01 |
| Angular2에서 객체 배열 정렬 (0) | 2023.07.01 |
| 프로그래밍 방식으로 UITextField 키보드 유형 변경 (0) | 2023.07.01 |
| Python에서 대용량 파일의 MD5 해시 가져오기 (0) | 2023.07.01 |