@RequestParam, @PathVariable
기본적으로 @RequestParam과 @PathVariable을 통해 파라미터를 주고받는 방법으로 데이터를 처리할 수 있다.
2023.04.21 - [Spring_Web/SpringBoot] - [Spring] @PathVariable과 @RequestParam - 파라미터 받기
그러나, 데이터의 양이 많거나, 데이터를 사용자에게 드러내지 않고 싶을 때는
@RequestBody와 @RequestHeader로 JSON을 받아서 데이터를 처리할 수 있다.
@RequestBody, @RequestHeader
Header
Content-Type: application/json
userAccountId: accouunt123
===================================
Body
{
"orderId" : "123",
"orderAmount" : 8500
}
위와 같은 HTTP 요청이 들어왔을 때 @RequestBody와 @RequestHeader로 데이터를 받아서 처리해보자.
@PostMapping("/order")
public String getOrderRequestBody(
@RequestBody CreateOrderRequest createOrderRequest,
@RequestHeader String userAccountId) {
log.info("Create order : {} , userAccountId : {}", createOrderRequest, userAccountId);
return "orderId:" + createOrderRequest.getOrderId() + " amount:"
+ createOrderRequest.getOrderAmount();
}
/order url로 Post 요청이 들어오면,
@RequestHeader 어노테이션을 통해 헤더의 userAccountId를 받아서 사용할 수 있다.
또한,
@RequestBody 어노테이션을 통해 Body의 JSON 텍스트를 CreateOrderRequest 객체에 바인딩할 수 있다.
이때, CreateOrderRequest 객체는 아래와 같이 JSON 데이터를 바인딩하기 위한 필드를 가져야 한다.
@Data
public class CreateOrderRequest{
private String orderId;
private Integer orderAmount;
}
반응형
'JAVA & Spring > Spring' 카테고리의 다른 글
[Spring] application.properties와 application.yml의차이 (0) | 2023.08.18 |
---|---|
[Spring] DB 연동 (MariaDB), MyBatis 사용 (0) | 2023.08.14 |
[Spring / Transaction] 트랜잭션 실제 적용되고 있는지 확인하는 방법 (0) | 2023.05.17 |
[Spring] 세션, 쿠키, @SessionAttribute 로그인 확인 (0) | 2023.04.21 |
[Spring Boot] PRG 패턴 ( Post - Redirect - Get ) (1) | 2023.04.21 |