(RESTful) RESTful API로 수정하기

최건·2025년 8월 8일

서비스 소개

  • 소품샵 정보를 제공하고, 리뷰·운영시간·상품 등을 포함한 상세 데이터를 보여주는 서비스

사이트

기존 API Endpoint

사용자 관련 (/user)

  • DELETE /user/:uuid: 사용자 삭제
  • GET /user/nickname/:nickName: 닉네임 중복 체크
  • GET /user/profile: 사용자 프로필 조회
  • GET /user/submit: 사용자의 제출 기록 조회
  • GET /user/review: 사용자의 리뷰 목록 조회
  • GET /user/wishlist: 사용자의 위시리스트 조회

상점 관련 (/shop)

  • GET /shop/: 1km 이내의 상점 조회
  • GET /shop/search: 키워드로 상점 검색
  • GET /shop/region: 모든 상점 지역 조회
  • GET /shop/temp: 임시 상점 목록 조회
  • GET /shop/:shopId: 특정 상점 상세 정보 조회

제출 관련 (/submit)

  • POST /submit/: 새로운 상점 제출
  • POST /submit/operating: 상점 운영 시간 제출
  • POST /submit/products: 상품 정보 제출

신고 관련 (/report)

  • POST /report/review: 리뷰 신고
  • POST /report/shop: 상점 신고

위시리스트 관련 (/wishlist)

  • POST /wishlist/: 위시리스트 추가

  • GET /recent-search/: 최근 검색어 조회
  • DELETE /recent-search/: 특정 최근 검색어 삭제
  • DELETE /recent-search/all: 모든 최근 검색어 삭제

공지사항 관련 (/notice)

  • GET /notice/: 공지사항 목록 조회

피드백 관련 (/feedback)

  • POST /feedback/: 피드백 저장

RESTFul API로 수정한 Endpoint

사용자 관련 (/users)

  • GET /users/me 프로필 정보 불러오기
  • PATCH /users/me 프로필 정보 수정하기
  • DELETE /users/me 회원탈퇴
  • GET /users/duplicate-check 닉네임 중복 체크
  • GET /users/me/shop-submissions 사용자가 등록/제안한 소품샵 목록
  • DELETE /users/me/shop-submissions/{submitId} 제보한 데이터 삭제
  • GET /users/me/reviews 사용자가 등록한 리뷰 목록
  • GET /users/me/wishlist 사용자가 찜한 소품샵 리스트
  • POST /users/me/wishlist 소품샵 찜하기
  • GET /users/me/recent-searches 최근 검색 기록 조회
  • DELETE /users/me/recent-searches 최근 검색 기록 전체 삭제
  • DELETE /users/me/recent-searches/{recentSearchId} 최근 검색 기록 개별 삭제

상점 관련 (/shops)

  • GET /shops 1km 반경 내 소품샵 조회
  • POST /shops 새로운 소품샵 제보
  • GET /shops/search 키워드로 소품샵 검색
  • GET /shops/temp 임시 소품샵 목록 조회
  • GET /shops/{shopId} 소품샵 상세 정보 조회
  • POST /shops/{shopId}/operating 소품샵 운영정보 제보
  • POST /shops/{shopId}/products 소품샵 판매 목록 제보
  • POST /shops/{shopId}/reviews 리뷰 작성
  • PATCH /shops/{shopId}/reviews/{reviewId} 리뷰 수정
  • DELETE /shops/{shopId}/reviews/{reviewId} 리뷰 삭제
  • POST /shops/{shopId}/shop/report 소품샵 신고
  • POST /shops/{shopId}/reviews/{reviewId}/report 리뷰 신고

RESTFul API로 적용 후 느낀점

문제점

일단 Users와 Shops 도메인에 너무 많은 코드가 몰렸다.
코드 리팩토링할 때 힘들 것 같다.
수정이 생기거나, 추가해야 되는 부분이 있을 경우 힘들 것 같다.

내가 원하는 방향

나는 엔드포인트를 도메인별(Review, Report 등)로 분리하는 것이 더 효율적이라고 생각한다.
그 이유는, 도메인 단위로 구분하면 유지보수가 용이하고 코드가 한곳에 과도하게 몰리지 않아 수정 시에도 훨씬 수월하기 때문이다.

앞으로 계획

OpenAPI와 스웨거를 활용한 실전 API 설계 책: https://product.kyobobook.co.kr/detail/S000211655004
을 읽고 RESTFul에 대한 공부를 더 한 뒤 추가적으로 글을 쓸 예정이다!

profile
개발이 즐거운 백엔드 개발자

0개의 댓글