Generate Models Using OpenAPI With Lombok Annotations (#14600)

* Generate Models Using OpenAPI With Lombok Annotations

* Generate Models Using OpenAPI With Lombok Annotations

* Generate Models Using OpenAPI With Lombok Annotations

* Generate Models Using OpenAPI With Lombok Annotations
This commit is contained in:
Michael Olayemi 2023-08-21 14:45:57 +01:00 committed by GitHub
parent 023d73ef61
commit f091132895
3 changed files with 99 additions and 0 deletions

View File

@ -25,10 +25,58 @@
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>${javax.annotation}</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger.annotation}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>${openapi.version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/bookapi.yml</inputSpec>
<generatorName>java</generatorName>
<modelPackage>com.baeldung.openapi.model</modelPackage>
<configOptions>
<additionalModelTypeAnnotations>@lombok.Data @lombok.NoArgsConstructor @lombok.AllArgsConstructor</additionalModelTypeAnnotations>
</configOptions>
<generateApis>false</generateApis>
<generateSupportingFiles>false</generateSupportingFiles>
<generateApiDocumentation>false</generateApiDocumentation>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<openapi.version>4.2.3</openapi.version>
<gson.version>2.10.1</gson.version>
<javax.annotation>1.3.2</javax.annotation>
<swagger.annotation>1.6.2</swagger.annotation>
</properties>
</project>

View File

@ -0,0 +1,12 @@
package com.baeldung.lombok.openapiandlombook;
@lombok.Data
@lombok.NoArgsConstructor
@lombok.AllArgsConstructor
public class Book {
private Long id;
private String name;
private String author;
}

View File

@ -0,0 +1,39 @@
openapi: 3.0.2
info:
version: 1.0.0
title: Book Store
license:
name: MIT
paths:
/books:
get:
tags:
- book
summary: Get All Books
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Book'
404:
description: Book not found
content: { }
components:
schemas:
Book:
type: object
required:
- id
- name
- author
properties:
id:
type: integer
format: int64
name:
type: string
author:
type: string