Initial project template using using Spring Initializr
Dependencies selected are:
- Spring Web: For REST endpoints
- Spring Data JPA: To persist data in SQL stores
- H2 Database: Embedded In-memory database for test
- Spring Boot Actuator: For monitoring metrics endpoints
- Spring Security: For authentication and authorization.
Security was disabled
in this project - Spring Boot Devtools: For live application reloads
- Lombok: To reduce boilerplate code
- Other dependencies:
- Swagger UI: To publish API documents
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency>
SpringBootRestJpaApplication.java
: Auto-generated Spring Boot starterApplicationSecurity.java
: To disable spring securitySwaggerConfig.java
: To configure Swagger
cd spring-boot-rest-jpa
mvn clean install
# Login
cf login -a https://api.API-DOMAIN \
-u admin -p <password> \
--skip-ssl-validation \
-o playground -s apps
# Deploy application using manifest
cf push --vars-file vars-dev.yml
https://boot-app-a.APP-DOMAIN/swagger-ui.html
# Create an employee
curl -X POST "https://boot-app-a.APP-DOMAIN/employees/create" \
-H "accept: */*" -H "Content-Type: application/json" \
-d "{ \"age\": 25, \"department\": \"Information Technology\", \"name\": \"Mohan Jo Daro\"}" -k
# Response Body
{
"age": 25,
"department": "Information Technology",
"name": "Mohan Jo Daro"
}
# Get all employees
curl -X GET "https://boot-app-a.APP-DOMAIN/employees/" -H "accept: */*" -k
# Response Body
[
{
"id": 1,
"name": "Mohan Jo Daro",
"age": 25,
"department": "Information Technology"
},
{
"id": 2,
"name": "H R Appa",
"age": 27,
"department": "Information Technology"
}
]