camp-us 캠핑장 커뮤니티 프로젝트-2(API 문서, DB 명세서 작성)

김상운(개발둥이)·2022년 1월 30일
1

camp-us

목록 보기
2/6
post-thumbnail

개요

카우치 코딩 2주차 스터디는 API 명세서 작성과, DB 명세서 작성을 진행하였다.

문서

API 문서
DB 명세서

API 문서 작성

도메인

현재 camp-us 프로젝트의 도메인은 총 3개로 회원(member), 캠핑장(camp), 리뷰이다.(review)

회원 도메인 API

회원 등록

method: (POST)
end point: /members

로그인

method: (GET)
end point: /members/me

닉네임 수정

method: (PATCH)
end point: /members/me

회원이 작성한 리뷰 조회

method: (GET)
end point: /members/me/reviews

회원의 알림 조회

method: (GET)
end point: /members/me/notifications

회원의 모든 알림 읽기

method: (PATCH)
end point: /members/me/notifications

회원의 알림 전체 삭제

method: (DELETE)
end point: /members/me/notifications

캠핑장 도메인 API

캠핑장 좋아요

method: (PATCH)
end point: /camps/{campId}/likes

캠핑장 검색

method: (GET)
end point: /camps

캠핑장 상세

method: (GET)
end point: /camps/{campId}

리뷰 도메인 API

캠핑장의 리뷰 조회

method: (GET)
end point: /camps/{campId}/reviews

캠핑장 리뷰 삭제

method: (DELETE)
end point: /camps/{campId}/reviews/{reveiewId}

캠핑장 리뷰 수정

method: (PATCH)
end point: /camps/{campId}/reviews/{reveiewId}

캠핑장 리뷰 작성

method: (POST)
end point: /camps/{campId}/reviews

리뷰 좋아요

method: (PATCH)
end point: /reviews/{reviewsId}/likes

베스트 리뷰 조회

method: (GET)
end point: /reviews/best

DB 명세서 작성

테이블

도메인을 참고해 엔티티를 설계한 결과 테이블이 총 6개가 나왔다.
member, camp, camp_like, review, review_like, notification

ERD

JPA 를 사용하여 데이터베이스와 연동을 할 것이기 때문에, 객체상에서의 양방향 연관관계를 사용하지 않고, 다대다를 사용하지 않았다.
또한, camp_like, review_like 등 좋아요와 관련된 테이블을 하나의 like 라는 테이블로 묶으려 했지만, 그럴경우 어떤 테이블의 PK 를 매핑했는지 모르기 때문에 테이블을 분리하였다.

이번주차는 API, DB 명세서를 작성하였다. 다음 주차는 두개의 명세서를 기반으로 JPA 셋업과, JPA 엔티티 개발이 이뤄진다.

깃허브 주소: https://github.com/Couch-Coders/6th-camp_us-be

profile
공부한 것을 잊지 않기 위해, 고민했던 흔적을 남겨 성장하기 위해 글을 씁니다.

0개의 댓글