혼자 공부하는 것들/Spring
[Spring] @RequestBody는 객체로 받자!
applepick
2022. 5. 30. 22:35
반응형
PUT으로 해당 JSON 객체 요청이 들어온다고 가정해봅시다.
PUT {URL/~}
content-type: application/json
{
"phoneNumber": "010-0000-0000",
"name": "김아무개",
"age": 28
}
Body에 핸드폰 번호, 이름, 나이의 정보를 받습니다. 이때! Map을 사용하지 말고 객체를 생성해서 만들어줍시다.
/**
* 사용자 승인
* @param req
* @return
*/
@PutMapping("/~")
public Object approvalFrom(@RequestBody Map<String,String> req){
...
}
이런 식으로 하면 문제점이 무엇일까요?
Map으로 리퀘스트를 처리할 경우 어떤 값이 넘어오는지 알 수 없고, 관리하기가 다소 어렵습니다. 정확한 모델을 만들어서 Request를 받는 것이 좋습니다.
import lombok.Getter;
@Getter
public class UserInfoRequestDto {
private String phoneNumber;
private String name;
private int age;
}
핸드폰 번호, 이름, 나이를 받을 수 있는 객체를 하나 생성해서 사용한다면, 재사용성과 정확한 값을 받아올 수 있는 장점이 있습니다. 또한 객체지향적인 관점에서 장점을 가질 수 있습니다.
/**
* 사용자 승인
* @param req
* @return
*/
@PutMapping("/~")
public Object approvalFrom(@RequestBody UserInfoRequestDto req){
...
}
위와 같이 사용하면 됩니다. @RequestBody를 Map으로 받는 것을 지양해야 합니다.
반응형