이전에 생성했던 게시글을 조회하는 간단한 API이다.
다음 정보를 DTO로 담아서 클라이언트로 전송한다.
1. title
2. author_profile
3. nickname
4. createdDate
5. img_path(nullable)
6. content
우선 api를 구현함에 있어서 어려움은 하나도 없었다.
그러나 한가지 고민인 것은,
현재 나는 로컬로 구현중인데,
백엔드 서버에서 저장중인 사진을 클라이언트 측으로 어떻게 보내주는 것인가에 대한 공부가 필요할 것 같다.
사진의 경로를 보내주는 것은 참 쉽지만,
클라이언트 측으로는 백엔드서버의 경로를 String 형식으로 보내줘봤자, 무슨 소용이 있을까에 대한 고빈이다.
/**
* 게시글 조회
* @param ourNewsNumber 조회하고자 하는 게시글 고유번호
* @return 게시글 조회 DTO
*/
@Operation(summary = "", description = "")
@GetMapping("/{ourNewsNumber}")
public ResponseEntity<GetNewsResponse> getNews(@PathVariable("ourNewsNumber") Long ourNewsNumber){
/* 게시글 조회 */
GetNewsResponse getNewsResponse = ourNewsService.getNews(ourNewsNumber);
return ResponseEntity.ok(getNewsResponse);
}
/**
* 게시글 조회 메서드
* @param ourNewsNumber 조회하고자 하는 게시글의 고유 번호
* @return 게시글 정보
*/
GetNewsResponse getNews(Long ourNewsNumber);
/**
* 게시글 조회 메서드
* @param ourNewsNumber 조회하고자 하는 게시글의 고유 번호
* @return 게시글 정보
*/
@Override
public GetNewsResponse getNews(Long ourNewsNumber) {
/* 게시글 조회 */
return ourNewsMapper.getNews(ourNewsNumber);
}
/**
* 게시글 조회
* @param ourNewsNumber 조회하고자 하는 게시글 고유번호
* @return 게시글 정보
*/
GetNewsResponse getNews(Long ourNewsNumber);
<!-- 게시글 조회 -->
<select id="getNews" resultType="website.server.Domain.Healing_Space_News.Our_News.DTO.Response.GetNewsResponse">
SELECT
ournews.title,
m.nickname,
m.profile_image_path,
ournews.createdDate,
ournews.img_path,
ournews.content
FROM
our_news ournews
JOIN
member m
ON
ournews.userNumber = m.userNumber
WHERE
ournews.ourNewsNumber =#{ourNewsNumber}
</select>
게시글을 조회함에 있어서 필요한 모든 정보를 DB에서 불러오는 것에 성공했다.
