HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👊
[승찬민] Around The Town (동네한바퀴)
/
💬
API Spec
💬

API Spec

주요기능

  • 사장님 - 사장님 정보관리/ 숙박시설 관리/ 티켓,레저 관리
  • 고객 - 주문/ 장바구니/ 위시리스트(찜)/ 리뷰
 
 
사장님(Host)
Description
Method
URI
담당자
진행상태
사장님 정보 등록
POST
/api/v1/hosts
COMPLETE
사장님이 보유한 상품정보 조회
GET
/api/v1/hosts/{hostId}/accommodations
COMPLETE
 
숙박(Accommodation)
Description
Method
URI
담당자
진행상태
숙박업체 등록
POST
/api/v1/hosts/accommodations
COMPLETE
지역, 카테고리에 일치하는 숙소 리스트
GET
/api/v1/accommodations?category={category}&region={region}
COMPLETE
전체 숙박업체 조회
GET
/api/v1/accommodation-all
COMPLETE
숙박업소를 수정
PATCH
/api/v1/hosts/accommodations/{accommodationId}
COMPLETE
숙박업소 제거 (soft delete)
DELETE
/api/v1/hosts/{hostId}/accommodations/{accommodationId}
COMPLETE
숙박업소의 사진리스트를 저장
POST
COMPLETE
객실정보(ROOM)
Description
Method
URI
담당자
진행상태
사장님이 보유한 숙박업소에 room 등록
POST
/api/v1/hosts/accommodations/{productId}
COMPLETE
객실 조회
GET
/api/v1/accommodations/{accommodationId}?check-in={checkIn}
COMPLETE
숙박업소의 방정보 변경
PATCH
COMPLETE
 
레저(Leisure)
Description
Method
URI
담당자
진행상태
레저업체 등록
POST
/api/v1/leisure
COMPLETE
레저 아이디로 조회
GET
/api/v1/leisure/{leisureId}
COMPLETE
카테고리에 맞는 레저 조회
GET
/api/v1/leisure/leisureCategories/{leisureCategory}
COMPLETE
호스트의 레저 전체 조회
GET
/api/v1/leisure/hosts/{hostId}
COMPLETE
레저 정보 수정
PUT
/api/v1/leisure
COMPLETE
레저 삭제
DELETE
/api/v1/leisure/{leisureId}
COMPLETE
티켓정보(Ticket)
Description
Method
URI
담당자
진행상태
티켓 등록
POST
/api/v1/tickets
COMPLETE
티켓 아이디로 조회
GET
/api/v1/tickets/{ticketId}
COMPLETE
레저에 해당하는 티켓 전체 조회
GET
/api/v1/tickets/leisure/{leisureId}
COMPLETE
티켓 정보 수정
PUT
/api/v1/tickets
COMPLETE
티켓 삭제
DELETE
/api/v1/tickets/{ticketId}
COMPLETE
 
회원(Member)
Description
Method
URI
담당자
진행상태
회원 등록
POST
/api/v1/members
COMPLETE
회원 아이디로 조회
GET
/api/v1/members/{memberId}
COMPLETE
회원 이메일로 조회
GET
/api/v1/members/email/{email}
COMPLETE
회원 연락처로 조회
GET
/api/v1/members/phoneNumber/{phoneNumber}
COMPLETE
회원 정보 수정
PUT
/api/v1/members/{memberId}
COMPLETE
회원 삭제
DELETE
/api/v1/members/{memberId}
COMPLETE
 
주문(Order)
Description
Method
URI
담당자
진행상태
주문 등록
POST
/api/v1/order
COMPLETE
주문 단일 조회
GET
/api/v1/orders/{orderId}
COMPLETE
멤버의 주문 전체 조회
GET
/api/v1/orders?memberId={memberId}
COMPLETE
주문 단일 삭제
DELETE
/api/v1/orders/{orderId}
COMPLETE
 
장바구니(Cart)
Description
Method
URI
담당자
진행상태
장바구니 등록
POST
/api/v1/cart
COMPLETE
장바구니 단일 조회
GET
/api/v1/carts/{cartId}
COMPLETE
멤버의 장바구니 전체 조회
GET
/api/v1/carts?memberId={memberId}
COMPLETE
장바구니 단일 삭제
DELETE
/api/v1/carts/{cartId}
COMPLETE
 
찜목록(Wish List)
Description
Method
URI
담당자
진행상태
위시리스트 등록
POST
/api/v1/wishList
COMPLETE
위시리스트 단일 조회
GET
/api/v1/wishLists/{wishListId}
COMPLETE
멤버의 위시리스트 전체 조회
GET
/api/v1/wishLists?memberId={memberId}
COMPLETE
위시리스트 단일 삭제
DELETE
/api/v1/wishLists/{wishListId}
COMPLETE
 
숙소 이용후기(Review)
Description
Method
URI
담당자
진행상태
리뷰 등록
POST
/api/v1/review
COMPLETE
리뷰 단일 조회
GET
/api/v1/reviews/{reviewId}
COMPLETE
멤버의 리뷰 전체 조회
GET
/api/v1/reviews?memberId={memberId}
COMPLETE
단일 리뷰 수정
PATCH
/api/v1/reviews/{reviewId}
COMPLETE
리뷰 단일 삭제
DELETE
/api/v1/reviews/{reviewId}
COMPLETE
 

참조자료

HTTP 표준 spec
HTTP의 진화 - HTTP | MDN
HTTP는 월드 와이드 웹에 내재된 프로토콜입니다. Tim Berners-Lee에 의해 1989년부터 1991년에 발명된 HTTP는, 본래의 단순함의 대부분을 지키면서 확장성 위에서 만들어지도록, 많은 수정을 거쳐왔습니다. HTTP는 의사-신뢰도가 있는 실험실 환경에서 파일을 교환하는 프로토콜에서 높은 수준의 분석과 3D 내에서 이미지와 비디오를 실어나르는 현대 인터넷 정글로 진화해 왔습니다.
HTTP의 진화 - HTTP | MDN
https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP
HTTP의 진화 - HTTP | MDN
URI 설계원칙 참조
1. 슬래시 구분자는 계층관계를 나타내는데 사용한다.(/) 2. URI 마지막 문자로 (/)는 포함하지 않는다. 3. 하이픈(-)은 가독성을 높힐 때 사용한다. 4. 밑줄(_)은 사용하지 않는다. 5. URI 경로는 소문자가 적합하다. 6. 파일확장자는 URI에 포함하지 않는다. 7. 프로그래밍 언어에 의존적인 확장자를 사용하지 않는다. 8. 구현에 의존적인 경로를 사용하지 않는다. 9. 세션 ID를 포함하지 않는다.(이걸 노출하면 상대 정보가 빼앗길수있음 10. 프로그래밍 언어의 method 명을 사용하지 않는다. 11. 명사에 단수형보다는 복수형을 사용한다. 컬렉션에 대한 표현은 복수로 사용 12. 컨트롤러 이름은 동사나 동사구를 사용한다. 13. 경로 부분중 변하는 부분은 유일한 값으로 대체한다. 14. CRUD기능을 나타내는 것은 URI에 사용하지 않는다. 15. URI 쿼리파라미터 디자인: URI 쿼리부분으로 컬렉션 결과에 대해 필터링 할 수 있다. 16. URI 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용한다. 17. API에 있어서 서브 도메인은 일관성있게 사용해야한다. 18. 클라이언트 개발자 포탈서브 동메인은 일관성있게 만든다.
put: 완전 수정 (필드에 null이 있음 안됨)
patch: body로 보낸 필드와 값 일부만 변경