[Feat] 프롬프트 상세 조회 및 댓글 CRUD API 계약 및 Swagger 명세 작성#30
Conversation
Hanharam
left a comment
There was a problem hiding this comment.
global/response에 추가된 ApiErrorResponse, ApiErrorExamples 대신에 기존 ApiResponse와 CommonErrorCode를 사용해 문서화하면 좋을 것 같습니다!
| Long userId, | ||
|
|
||
| @Schema(description = "작성자 이름", example = "프롬프트장인") | ||
| String displayName, |
There was a problem hiding this comment.
displayName도 좋지만 필드명을 저는 nickname으로 하는 것이 더 명확하고 프론트 분들도 알기 쉬울 것 같습니다!
| List<PromptTagResponse> tags, | ||
|
|
||
| @Schema(description = "공개 통계") | ||
| PromptStatisticsResponse statistics, |
There was a problem hiding this comment.
로그인 사용자가 자신이 좋아요나 북마크를 눌렀는 지 확인할 수 있도록 viewerInteraction(liked, bookmarked) 같은 상태를 응답해야할 것 같습니다!
There was a problem hiding this comment.
확인 감사합니다! 로그인 사용자의 좋아요·북마크 여부가 누락되어 있어, 상세 응답에 viewerInteraction(liked, bookmarked)을 추가했습니다. 비로그인 사용자는 두 값 모두 false로 명세했습니다.
| CommentStatus status, | ||
|
|
||
| @Schema(description = "현재 로그인 사용자가 작성한 댓글인지 여부", example = "true") | ||
| boolean mine, |
There was a problem hiding this comment.
Figma 댓글 컴포넌트에는 프롬프트 작성자의 댓글임을 나타내는 “작성자” 배지가 있고 mine은 로그인 사용자 본인의 댓글인지만 나타내고 있습니다.
그래서 boolean 형식의 필드를 추가해서 작성자 댓글인 것을 나타내면 좋을 것 같습니다!
아니면 상세 응답의 prompt.author.userId와 comment.author.userId를 프론트가 비교하는 방식으로 처리할지, 댓글 응답에 promptAuthor boolean을 제공할지 정하는 것도 좋을 것 같습니다!
There was a problem hiding this comment.
프론트에서 작성자 ID를 비교하는 방식도 가능하지만, 댓글 API만으로 UI 상태를 명확히 판단할 수 있도록 백엔드에서 제공하는 방향으로 반영했습니다. 기존 mine은 로그인 사용자 본인의 댓글 여부로 유지하고, 프롬프트 작성자의 댓글 여부를 나타내는 promptAuthor 필드를 댓글 및 대댓글 응답에 추가했습니다. 놓쳤던 세부 사항까지 꼼꼼하게 확인해 주셔서 감사합니다!
…mment-api # Conflicts: # src/main/java/com/promsearch/prompt/interfaces/PromptController.java # src/main/java/com/promsearch/prompt/interfaces/docs/PromptControllerDocs.java
변경 사항
400,401,403,404상태별 예시를 정의했습니다.501 Not Implemented를 반환합니다.프롬프트 상세
promptBody를 빈 문자열로 반환하도록 명세했습니다.FREE콘텐츠의 원문 전체를 조회할 수 있습니다.PREMIUM미결제 사용자에게는 원문의 앞부분 10%, 최대 200자만 반환하도록 명세했습니다.PREMIUM결제 완료 사용자와 작성자는 원문 전체를 조회할 수 있습니다.access.locked,access.reason으로 로그인 또는 결제 필요 여부를 전달합니다.FREE,PREMIUM콘텐츠 타입만 노출합니다.이미지 및 태그
images[].thumbnail값으로 구분합니다.댓글
replies에 포함합니다.mine을 포함합니다.200 OK를 반환합니다.Swagger 예시
parentCommentId: null, 대댓글은 부모 댓글 ID를 반환합니다.replies가 문자열로 표시되지 않도록 했습니다.범위 제외
authorTip과description도메인 명칭 정리테스트
./gradlew compileJava./gradlew testgit diff --check통과Closes #29