Spring boot
has default support for JSON payload. For example, below snippet return all the
employees data in json format.
@RequestMapping(value
= "employees", method = RequestMethod.GET)
public
ResponseEntity<List<Employee>> all() {
return
ResponseEntity.ok(empRepo.all());
}
Find the
below working application.
App.java
package com.sample.app; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
EmployeeController.java
package com.sample.app.cotroller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.sample.app.model.Employee; import com.sample.app.repository.EmployeeRepository; @RestController @RequestMapping("api/v1/") public class EmployeeController { @Autowired private EmployeeRepository empRepo; @RequestMapping(value = "employees", method = RequestMethod.GET) public ResponseEntity<List<Employee>> all() { return ResponseEntity.ok(empRepo.all()); } }
HomeController.java
package com.sample.app.cotroller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HomeController { @RequestMapping("/") public String home() { return "Hello World"; } }
Employee.java
package com.sample.app.model; public class Employee { private int id; private String firstName; private String lastName; public Employee(int id, String firstName, String lastName) { super(); this.id = id; this.firstName = firstName; this.lastName = lastName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Employee [id=").append(id).append(", firstName=").append(firstName).append(", lastName=") .append(lastName).append("]"); return builder.toString(); } }
EmployeeRepository.java
package com.sample.app.repository; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Repository; import com.sample.app.model.Employee; @Repository public class EmployeeRepository { private static final List<Employee> emps = new ArrayList<> (); static { Employee emp1 = new Employee(1, "Sunil", "Dayanand"); Employee emp2 = new Employee(1, "Keerthi", "Shetty"); Employee emp3 = new Employee(1, "Ram", "Anand"); emps.add(emp1); emps.add(emp2); emps.add(emp3); } public List<Employee> all(){ return emps; } }
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>springRest</groupId> <artifactId>springRest</artifactId> <version>1</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> </parent> <name>springbootApp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
Total
project structure looks like below.
Run
App.java.
Open the
url ‘http://localhost:8080/api/v1/employees’ in browser, you can see below kind
of screen.
You can
download the complete working application from this link.
No comments:
Post a Comment