Skip to content

amlandatta/spring-boot-rest-jpa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot REST and JPA example

Getting Started

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>
    

Code base

  • SpringBootRestJpaApplication.java: Auto-generated Spring Boot starter
  • ApplicationSecurity.java: To disable spring security
  • SwaggerConfig.java: To configure Swagger

Sequence Diagram

Build

cd spring-boot-rest-jpa
mvn clean install

Deploy to PCF foundation

# 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

Launch Swagger UI

https://boot-app-a.APP-DOMAIN/swagger-ui.html

Test

# 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"
  }
]

About

Spring Boot with REST and JPA example

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages