DEV Community

realNameHidden
realNameHidden

Posted on

Spring Boot RestTemplate postForEntity method

Producer app

Image description

EmployeeController

package com.example.demo.controller;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.entity.Employee;

@RestController
@RequestMapping("/employee")
public class EmployeeController {

 @PostMapping("/save")
 public ResponseEntity<Employee> saveEmp(@RequestBody Employee emp){
  return new ResponseEntity<Employee>(emp,HttpStatus.OK);
 }

}

Enter fullscreen mode Exit fullscreen mode

Employee

package com.example.demo.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Employee {

 private Integer id;

 private String name;
}

Enter fullscreen mode Exit fullscreen mode

application.properties

spring.application.name=ProducerApp
server.port=8081

Enter fullscreen mode Exit fullscreen mode

Consumer App

Image description

Employee

package com.example.demo.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Employee {


 private Integer id;

 private String name;
}

Enter fullscreen mode Exit fullscreen mode

EmployeeTestRunner

package com.example.demo.runner;

import org.springframework.boot.CommandLineRunner;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import com.example.demo.entity.Employee;

@Component
public class EmployeeTestRunner implements CommandLineRunner{

 @Override
 public void run(String... args) throws Exception {

  //String url
  String url = "http://localhost:8081/employee/save";

  HttpHeaders header = new HttpHeaders();
  header.setContentType(MediaType.APPLICATION_JSON);

  String body = "{\"id\":101,\"name\":\"sam\"}";

  HttpEntity<String> entity = new HttpEntity<String>(body,header);

  RestTemplate rt = new RestTemplate();

  //make http call
  ResponseEntity<Employee> response = rt.postForEntity(url, entity, Employee.class);

  System.out.println(response.getBody());

 }

}

Enter fullscreen mode Exit fullscreen mode

Top comments (0)