쌓고 쌓다
스프링 JSON 응답에 추가 정보(데이터) 추가하기 본문
대댓글 구현중에 대댓글 더보기 버튼을 사용자에게 제공하는 기능을 만들고 있었다.
더 가져올 데이터가 없다면 더보기 댓글을 없애고싶었다.
대댓글 더보기할때 대댓글 총 개수를 넘게된다면 더보기 기능은 없어져야한다.
그러기위해서는 대댓글 데이터를 JSON으로 받아올때 해당 댓글의 대댓글의 총 개수가 필요했다.
기존의 대댓글 데이터를 서버로부터 받아오면 페이징처리된 대댓글(Page<Comment>)의 JSON이였지
내가 필요한 정보를 더 담아내지 못했다.
아래의 코드처럼 작성한다면 JSON에 추가 정보를 담아 응답을 내줄 수 있다.
public Map<String, Object> findReply(Long parentCommentId, int page) {
Sort sort=Sort.by(Sort.Order.desc("regDate"), Sort.Order.desc("id"));
Pageable pageable = PageRequest.of(page, 5, sort);
Map<String, Object> m = new HashMap<>();
m.put("content" ,commentRepository.findByParentCommentIdAndIsParent(parentCommentId, false ,pageable));
m.put("totalSize", commentRepository.countByParentCommentIdAndIsParent(parentCommentId, false));
return m;
}
Map<String, Object>를 반환해주면 된다.
"content" Key에는 페이징처리된 대댓글들이.
"totalSize" Key에는 해당 댓글에 달린 대댓글의 총 개수를 넣었다.
즉, 그냥 키와 값으로 반환값을 맞춰주면 JSON으로 추가 정보들을 담아 응답할 수 있다.
기존에 페이징 처리된 대댓글 5개만 응답으로 받았지만
이제 Map<String, Object>로 원하는 키 값을 추가하여 JSON 응답을 줄 수 있다.
'프로그래밍 > spring' 카테고리의 다른 글
@Valid 400 에러, 메서드 파라미터 건들였더니 에러 (0) | 2023.08.01 |
---|---|
[스프링 부트] 대댓글 작성 및 더보기 기능 - 16 (0) | 2023.07.28 |
POST 요청 JSON과 x-www-form-urlencoded 동시 처리 (0) | 2023.07.25 |
[스프링 부트] Ajax 댓글 작성 및 삭제 - 15 (0) | 2023.07.24 |
[스프링 부트] 댓글, 날짜순 게시글 정렬 기능 - 14 (0) | 2023.07.23 |
Comments