Spring 심화 pjt

2023. 1. 3. 09:39스파르타 내일배움캠프/Spring 강의 정리

프로젝트 API

기능 API URL Method Request Header Request Response Response header 추가하고 싶은 기능
회원가입 페이지 /signup GET     signup.html    
회원가입 /signup POST   {
"userName" : "banana1234",
"userPassword" : "apple@1234",
"role" : "USER",
"adminPassword" : "admin1234"
}
{
"msg" : "회원가입 완료",
"statusCode" : 200
}
  회원가입 중복체크 기능을 따로 만들고 싶다.
로그인 페이지 /signin GET     login.html    
로그인 /signin POST   {
"userName" : "banana1234",
"userPassword" : "apple@1234"
}
{
"msg" : "로그인 완료",
"statusCode" : 200
}
{
"Authorization" : Bearer ~
}
 
전체 게시글 목록 조회 /signin GET     {
"posts" : [{'id" : 1, "userName" :"banana1234", "title" : "blah", "content" : "blah blah", "likes" : 1}, {'id" : 2, "userName" :"banana1234", "title" : "blah", "content" : "blah blah", "likes" : 2}]
}
   
단일 게시글 조회 /movie/posts/{post-id} GET     detail.html    
게시글 작성 /movie/posts POST {
"Authorization" : Bearer ~
}
{ "title": "게시글5", "content": "내용5" } {
"msg" : "게시글 작성 완료",
"statusCode" : 200
}
   
게시글 수정 /movie/posts/{post-id} PUT {
"Authorization" : Bearer ~
}
{
"title" : "바나나 다 먹었는데"
"content":"바나나 또 먹고싶다"

}
{
"msg" : "게시글 수정 완료",
"statusCode" : 200
}
   
게시글 삭제 /movie/posts/{post-id} DELETE {
"Authorization" : Bearer ~
}
  {
"msg" : "게시글 삭제",
"statusCode" : 200
}
   
게시글 좋아요 /movie/posts/{post-id}/likes POST {
"Authorization" : Bearer ~
}
       
내가 쓴 댓글 조회 /movie/comments GET {
"Authorization" : Bearer ~
}
  {
"comments" : [{'id" : 1, "userName" :"banana1234", "content" : "blah blah", "likes" : 1}, {'id" : 2, "userName" :"banana1234", "content" : "blah blah, "likes" : 1"}]
}
   
댓글 작성 /movie/comments POST {
"Authorization" : Bearer ~
}
{
"comment" : "댓글A"
}
{
"msg" : "댓글 작성 완료",
"statusCode" : 200
}
   
댓글 삭제 /movie/comments/{comment-id} DELETE {
"Authorization" : Bearer ~
}
  {
"msg" : "댓글 삭제 완료",
"statusCode" : 200
}
   
댓글 수정 /movie/comments/{comment-id} PUT {
"Authorization" : Bearer ~
}
{
"comment" : "댓글B"
}
{
"msg" : "댓글 수정 완료",
"statusCode" : 200
}
   
댓글 좋아요 /movie/comments/likes POST {
"Authorization" : Bearer ~
}
{
"id" : 1
}
{
"msg" : "좋아요 표시를 했습니다",
"statusCode" : 200
}
  누가 눌렀는지도 알려주는 기능을 만들고 싶다...

 

여기서 예외 처리와 게시글/ 댓글 좋아요 기능을 담당하였습니다.

 

처음에 like로 엔티티를 시작했는데 쿼리 에러가 발생하였습니다.

 

에러 메세지

could not prepare statement; SQL [select l1_0.id,l1_0.board_id,l1_0.user_id from like l1_0 where l1_0.user_id=? and l1_0.board_id=?]"

 

찾아서 확인해보니, 데이터베이스에 like 테이블이 생성되지 않았습니다.

열심히 고민하고 이것저것 확인해보던 중, like는 SQL 예약어라는 것을 알게 되었습니다.

https://devyuseon.github.io/spring/spring-like-feature/

 

따라서 heart로 수정하여 최종적으로 좋아요 기능을 완성할 수 있었습니다. 

entity는 user와 board id, comment id를 활용하여 탐색할 수 있으며 두 번 누르게 되면 좋아요가 취소되는 기능을 사용하였습니다.

 

'스파르타 내일배움캠프 > Spring 강의 정리' 카테고리의 다른 글

Spring 심화 pjt(2)  (0) 2023.01.06
No serializer found for class 오류  (0) 2023.01.05
Spring Security  (0) 2022.12.26
Spring 숙련 과제(최종)  (0) 2022.12.21
Spring 숙련 과제(2)  (0) 2022.12.20