본문 바로가기
💻 뚝딱뚝딱/북북클럽

[개발일지 #021] 좋아요(Like) 도메인 API 구현 및 테스트

by 뚜루리 2025. 4. 30.
728x90
320x100

🎯 오늘의 목표

  • 좋아요(Like) 도메인 API 구현
  • 좋아요(Like) 도메인 API 테스트

⚙️ 진행한 작업

  • 좋아요(Like) 도메인 API 구현
  • 좋아요(Like) 도메인 API 테스트

🛠️ 개발내용

📌  LikeController 구현

**
 * 좋아요(Like) API 컨트롤러
 */
@RestController
@RequestMapping("/api/feeds")
@RequiredArgsConstructor
public class LikeController {

    private final LikeService likeService;

    /**
     * 피드 좋아요
     * @param feedId 좋아요할 피드 ID
     * @param userDetails 인증된 사용자 정보
     */
    @PostMapping("/{feedId}/likes")
    public ResponseEntity<ApiResponse<Void>> like(@PathVariable Long feedId,
                                                  @AuthenticationPrincipal CustomUserDetails userDetails) {
        User user = userDetails.getUser();
        likeService.likeFeed(user, feedId);
        return ResponseEntity.ok(ApiResponse.success(null, "좋아요를 눌렀습니다."));
    }

    /**
     * 피드 좋아요 취소
     * @param feedId 좋아요 취소할 피드 ID
     * @param userDetails 인증된 사용자 정보
     */
    @DeleteMapping("/{feedId}/likes")
    public ResponseEntity<ApiResponse<Void>> unlike(@PathVariable Long feedId,
                                                    @AuthenticationPrincipal CustomUserDetails userDetails) {
        User user = userDetails.getUser();
        likeService.unlikeFeed(user, feedId);
        return ResponseEntity.ok(ApiResponse.success(null, "좋아요를 취소했습니다."));
    }
}

 


[포스트맨으로 테스트 하기]

📌  좋아요 누르기 테스트

Method POST
URL http://localhost:8080/api/feeds/{feedId}/likes
Header Authorization: Bearer {AccessToken}
Body 없음 (PathVariable로 feedId만 넘김)

 

[테스트 결과 : 성공]

 

 

📌  좋아요 취소 테스트

Method DELETE
URL http://localhost:8080/api/feeds/{feedId}/likes
Header Authorization: Bearer {AccessToken}
Body 없음

 

[테스트 결과 : 성공]

 
 
728x90
320x100