[게시판] 게시글 전체 목록 조회
2023. 1. 25. 15:52ㆍ프로젝트/라이프 챌린지
728x90
SMALL
게시글이 작성이 되었으면 당연하게도 게시글을 조회하기 이전에 작성된 게시글들의 목록이 출력이 되어야한다.
간단한 게시글 전체 목록 조회 api를 구현해보자.
PostController
// 게시글 전체 목록 조회
@GetMapping("/post/readlist")
public ResponseEntity<ResponseBody> postReadList(HttpServletRequest request){
log.info("게시글 전체 목록 조회 - 접근 유저 : {}", jwtTokenProvider.getMemberFromAuthentication().getNickname());
return postService.postReadList(request);
}
작성된 게시글들 전체 목록 조회 api를 만들어준다.
- 조회만 할 것이기 때문에 GetMapping method 타입으로 만들어준다.
- 전체 조회라서 따로 post_id를 받을 필요도 없이 조회하고자 하는 Request만 Service 단에 인자값으로 넘겨준다.
PostService
// 게시글 전체 목록 조회
public ResponseEntity<ResponseBody> postReadList(HttpServletRequest request) {
// 유저 검증
Member auth_member = checkAuthentication(request);
// 작성된 모든 게시글 리스트화
List<Post> postList = queryFactory
.selectFrom(post)
.fetch();
// 최종적으로 리스트화된 게시글들이 반환될 List
List<HashMap<String, String>> postListSet = new ArrayList<>();
// 전체 게시글들을 하나씩 조회
for(Post each_post : postList){
// HashMap으로 조회된 게시글 일부 정보가 담김
HashMap<String, String> postSet = new HashMap<>();
postSet.put("post_id", each_post.getPost_id().toString()); // 게시글 id
postSet.put("title", each_post.getTitle()); // 게시글 제목
postSet.put("nickname", each_post.getMember().getNickname()); // 게시글 작성자 닉네임
postSet.put("viewcnt", each_post.getViewcnt().toString()); // 게시글 조회수
postSet.put("createdAt", each_post.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy.MM.dd hh:mm"))); // 게시글 생성일자
// 최종 반환 리스트에 담음
postListSet.add(postSet);
}
return new ResponseEntity<>(new ResponseBody(StatusCode.OK.getStatusCode(), StatusCode.OK.getStatus(), postListSet), HttpStatus.OK);
}
게시글 전체 목록을 불러오는 Service 로직을 만들어준다.
- checkAuthentication 을 통해 유효 Member 객체 반환.
- fetch()를 통해 모든 게시글 정보를 받아와서 List에 넣어준다.
- 게시글 목록을 출력받을 때 모든 정보가 필요하지 않고 일부의 정보들만 필요하기 때문에 HashMap으로 출력하고자 하는 정보들을 넣어주고 그 HashMap을 List화하여 반환해주기로 한다.
- postListSet은 최종적으로 반환되어질 List이다.
- List 화하여 모아진 post들을 for each문으로 하나씩 조회하여 필요한 정보들을 HashMap에 넣어주고, 넣어진 HashMap을 postListSet에 담아준다.
- postListSet을 최종적으로 반환한다.
포스트맨으로 확인.
정상적으로 모든 게시글이 출력되는 것을 확인할 수 있다.
728x90
반응형
LIST
'프로젝트 > 라이프 챌린지' 카테고리의 다른 글
[댓글] 댓글 작성 (0) | 2023.01.28 |
---|---|
[게시판] 게시글 좋아요 / 좋아요 취소 (0) | 2023.01.25 |
[게시판] 게시글 조회 (0) | 2023.01.25 |
[게시판] 게시글 삭제 (0) | 2023.01.25 |
[게시판] 게시글 수정 (0) | 2023.01.25 |