Spring boot sample app with API first approach
Spring boot sample app with API first approach. Integrates Open API Generator to generate API interfaces and Domain models.
Gradle Multimodule project. All directories at level 1 are gradle modules.
.
├── api // controllers
│ └── src
│ ├── main
│ │ ├── java
│ │ ├── resources
│ │ └── spec // openAPI spec. here
│ └── test
│ ├── java
│ └── resources
├── app
│ └── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
├── config
│ └── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
├── dao
│ └── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
├── entities
│ └── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
└── service // bussiness logic
└── src
├── main
│ ├── java
│ └── resources
└── test
├── java
└── resources
:api
gradle module:api/src/main/spec
folder and execute codegen
gradle task:api/build/src/main/java
Todo Entries
and Users
in separate yaml files. Models are shared between the two APIs.codegen
task.http://localhost:8083/swagger-ui.html
, via `io.springfox:springfox-swagger-ui’http://localhost:8083/v2/api-docs
net.ripper.todoapp.api.config.SwaggerConfigurer
http://flywaydb.org
:db
and run flyway -configFiles=flyway-{env}.conf migrate
to apply migrations in :db\sql
folderstart-sonar.sh
script to start a local sonar instance at port 9001systemProp.sonar.host.url=http://localhost:9001
to ~/.gradle/gradle.properties
test
followed by sonarqube
http://localhost:9001
to see code quality resultsnet.ripper.todoapp.api.config.JacksonObjectMapperConfigurer
net.ripper.todoapp.api.config.ValidationConfigurer