[Spring boot] @RequestBody로 객체 여러 개(entity, dto, dao, vo등) 한 번에 받아서 처리하는 법
반응형
프로젝트를 하다가 한 번에 여러 객체를 받아서 로직을 처리해야 하는 일이 생겼다.
@RequestBody에서 값들을 JSON 형태로 받아오는데 이때 값들의 형태를 아래와 같이 고정해서 보내준다.
{
"item": {
...
},
"option": {
...
}
}
이런 식으로 값을 넘겨받았다고 가정한다.
그리고 그 값들을 dto class에 넣어준다고 가정한다.
그럼 Controller에서 값들을 이렇게 처리해준다.
@PostMapping("/items/new")
public ResponseEntity<?> newItem(@RequestBody ObjectNode item) throws JsonProcessingException {
try {
ObjectMapper mapper = new ObjectMapper();
ItemSaveRequestDto itemDto = mapper.treeToValue(item.get("item"), ItemSaveRequestDto.class);
OptionSaveRequestDto option = mapper.treeToValue(item.get("option"), OptionSaveRequestDto.class);
...
return new ResponseEntity(HttpStatus.OK);
} catch (Exception e) {
return exceptionHandling();
}
}
JSON 데이터 값을 Parsing 하기 위해서 exception을 던져주고
ObjectNode로 JSON 값들을 입력받는다.
ObjectMapper를 사용해서 값들을 잘라서 저장해 준다.
반응형
'Logs' 카테고리의 다른 글
-
[Spring Data JPA] JPA에서 Query작성하는 법(with @Query)2023.02.22
-
[Spring boot] JPA QueryDSL 환경 설정, 연동하기 (Maven, Gradle ver)2023.02.22
-
[Error] Operation failed: There was an error while applying the SQL script to the database. ERROR 2013: Lost connection to MySQL server during query 에러 해결하는 법2023.02.22
-
[Spring Data JPA] JpaRepository를 활용해 Query작성없이 Limit 사용하기2023.02.22