Implementation using OpenAPI 3.0, Spring Boot, Kotlin, Gradle and Maven
foo@bar:~$ git clone https://github.com/arthurfnsc/openapi-apifirst.git
foo@bar:~$ cd openapi-apifirst
foo@bar:~$ [./gradlew | gradlew.bat] clean bootRun
foo@bar:~$ [./mvnw | mvnw.cmd] clean spring-boot:run
openapi-apifirst
|-- ".mvn"
| `-- "wrapper"
| |-- "maven-wrapper.jar"
| |-- "maven-wrapper.properties"
| `-- "MavenWrapperDownloader.java"
|-- "build"
| `-- "generated"
| |-- "openapi-code-client"
| | `-- "src"
| | `-- "main"
| | `-- "java"
| `-- "openapi-code-server"
| `-- "src"
| `-- "main"
| `-- "java"
|-- "gradle"
| `-- "wrapper"
| |-- "gradle-wrapper.jar"
| `-- "gradle-wrapper.properties"
|-- "plugins"
| |-- "ides.gradle"
| |-- "kotlin.gradle"
| `-- "openapi.gradle"
|-- "src"
| `-- "main"
| |-- "kotlin"
| | `-- "br"
| | `-- "com"
| | `-- "arthurfnsc"
| | `-- "openapipifirst"
| | |-- "apis"
| | | `-- "impl"
| | | `-- "BandApiImpl.kt"
| | |-- "configs"
| | | `-- "SwaggerConfig.kt"
| | `-- "OpenapiApifirstApplication.kt"
| `-- "resources"
| |-- "application.yaml"
| |-- "application-dev.yaml"
| |-- "application-hom.yaml"
| `-- "application-prd.yaml"
|-- "target"
| `-- "generated-sources"
| |-- "openapi-code-client"
| | `-- "src"
| | `-- "main"
| | `-- "java"
| `-- "openapi-code-server"
| `-- "src"
| `-- "main"
| `-- "java"
|-- ".gitignore"
|-- "build.gradle"
|-- "gradlew"
|-- "gradlew.bat"
|-- "mvnw"
|-- "mvnw.cmd"
|-- "pom.xml"
|-- "README.md"
`-- "settings.gradle"