diff --git a/src/main/java/com/back/domain/post/post/controller/PostController.java b/src/main/java/com/back/domain/post/post/controller/PostController.java index f601a72d..160b871d 100644 --- a/src/main/java/com/back/domain/post/post/controller/PostController.java +++ b/src/main/java/com/back/domain/post/post/controller/PostController.java @@ -41,4 +41,16 @@ public RsData createPost( public RsData> getAllPosts() { return RsData.successOf(postService.getAllPosts()); // code=200, message="success" } + + /** + * 게시글 단건 조회 API + * @param postId 조회할 게시글 ID + * @return 해당 ID의 게시글 정보 + */ + @GetMapping("/{postId}") + public RsData getPost( + @PathVariable Long postId + ) { + return RsData.successOf(postService.getPost(postId)); // code=200, message="success" + } } diff --git a/src/main/java/com/back/domain/post/post/service/PostService.java b/src/main/java/com/back/domain/post/post/service/PostService.java index d3817088..4261e00f 100644 --- a/src/main/java/com/back/domain/post/post/service/PostService.java +++ b/src/main/java/com/back/domain/post/post/service/PostService.java @@ -11,6 +11,7 @@ import com.back.domain.user.entity.User; import com.back.global.rq.Rq; import java.util.List; +import java.util.NoSuchElementException; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -69,4 +70,13 @@ public List getAllPosts() { .map(PostResponseDto::new) .collect(Collectors.toList()); } + + // 게시글 단건 조회 로직 + @Transactional(readOnly = true) + public PostResponseDto getPost(Long postId) { + return new PostResponseDto( + postRepository.findById(postId) + .orElseThrow(() -> new NoSuchElementException("해당 게시글을 찾을 수 없습니다. ID: " + postId)) + ); + } }