[Our News 댓글 리스트 반환 API]

1. Our News 댓글 리스트 반환 API

Our News 게시글에 이미 작성된 댓글들을 리스트 형식으로 반환하는 API이다.

반환 리스트 DTO은 다음과 같다.

package website.server.Domain.Healing_Space_News.Our_News.DTO.Response;

import java.time.LocalDateTime;

public record OurNewsCommentResponse(

        Long commentId,
        String profile_image_path,
        String nickname,
        String content,
        LocalDateTime createdDate

) {
}

2. Trouble Solving

이전에도 개발해봤던 API인지라 어려움은 없었고 한가지 실수라 하면,

 @PathVariable("ourNewsNumber") Long ourNewsNumber 

여기서 "ourNewsNumber"를 적지 않아서 잠시 500 에러가 뜬 것 밖에 없다.

3. 구현

너무 간단하다... 솔직히 설명할 것이 있나 모르겠다.

3.1 Controller

/**
     * 댓글 조회 API
     * @param request 사용자 요청
     * @param ourNewsNumber 댓글을 조회하고자 하는 게시글 고유 번호
     * @return 댓글 리스트 반환
     */
    @Operation(summary = "댓글 조회 API",description = "")
    @GetMapping("/comment/{ourNewsNumber}")
    public ResponseEntity<List<OurNewsCommentResponse>> getComment(HttpServletRequest request,
                                                                   @PathVariable("ourNewsNumber") Long ourNewsNumber ){

        /* 댓글 리스트 조회 */
        List<OurNewsCommentResponse> ourNewsCommentResponseList =ourNewsService.getComment(request,ourNewsNumber);

        return ResponseEntity.ok(ourNewsCommentResponseList);
    }

3.2 Service

3.2.1 Interface

  /**
     * 댓글 조회 메서드
     * @param request 사용자 요청
     * @param ourNewNumber 댓글을 조회하고자 하는 게시글 고유 번호
     * @return 댓글 리스트 반환
     */
    List<OurNewsCommentResponse> getComment(HttpServletRequest request,Long ourNewNumber);

3.2.2 Implements

 /**
     * 댓글 조회 메서드
     * @param request 사용자 요청
     * @param ourNewNumber 댓글을 조회하고자 하는 게시글 고유 번호
     * @return 댓글 리스트 반환
     */
    @Override
    public List<OurNewsCommentResponse> getComment(HttpServletRequest request, Long ourNewNumber) {

        /* 댓글 리스트 반환 */
        return ourNewsMapper.getComment(ourNewNumber);
    }

3.3 Mapper

3.3.1 mapper

  /**
     * 댓글 조회
     * @param ourNewsNumber 댓글을 조회하고자 하는 게시글의 고유번호
     * @return 댓글 리스트 반환
     */
    List<OurNewsCommentResponse> getComment(Long ourNewsNumber);

3.3.2 Xml

 <!-- 댓글 조회 -->
    <select id="getComment" resultType="website.server.Domain.Healing_Space_News.Our_News.DTO.Response.OurNewsCommentResponse">

        SELECT
            onc.commentId,
            m.profile_image_path,
            m.nickname,
            onc.content,
            onc.createdDate
        FROM
            our_news_comment onc
        JOIN
            member m
        ON
            onc.userNumber =m.userNumber
        WHERE
            onc.ourNewsNumber=#{ourNewsNumber}

    </select>

4. 결과

200ok + 댓글 리스트 반환 성공

profile
내가 있는 그 조직에서 가장 성실하기만 하자

0개의 댓글