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 |