Netty request type 으론 dto를 사용할 수 없는가?
기존 netty 프로젝트에서 추가 개발에 들어갔다.
필수값 exception 처리에 대한 기존 코드들을 보고, 왜 이렇게 했을까 하는 생각에
새로 추가할 api에는 request dto에 validate annotation을 사용하는 방법으로 해보려했다.
근데 요청이 되지 않았다… 요청 타입이 잘못 되었다는 것….!
Netty에서는 기본적인 데이터 처리 방식이 dto의 맵핑과 맞지 않는다는 것을 알았다.
Netty는 기본적으로 Netty는 기본적으로 JSON이나 폼 데이터를 파싱해서 자동으로 DTO 객체로 변환하지 않으므로, 수동으로 데이터를 처리해주어야 한다고 한다.
- Map<String, Object> 으로 처리하는 방법
1
String json = request.content().toString(CharsetUtil.UTF_8);
- JSON 파싱 후 DTO로 변환 하는 방법
1
2
ObjectMapper objectMapper = new ObjectMapper();
RequestDto dto = objectMapper.readValue(json, RequestDto.class);