HTTP API

김동호·2022년 6월 29일
0

Spring

목록 보기
17/26

HTTP API 및 RESTful API에 맞게끔 URI를 설계해보자.


회원 정보 관리 API를 만들어야 한다고 했을 때
회원 목록 조회, 회원 조회, 회원 등록, 회원 수정, 회원 삭제 의 기능을 구현해야 할 것이다.

이때 주의해야 할 점은, 리소스 식별이다.
여기서 리소스자원을 의미한다. 더 나아가 도메인 혹은 엔티티가 될 수 있을 것이다.

그럼 이를 유념하여 URI를 설계해보자.

  • 회원 목록 조회: /members -> GET
  • 회원 조회: /members/{id} -> GET
  • 회원 등록: /members -> POST
  • 회원 수정: /members/{id} -> PATCH, PUT, POST
  • 회원 삭제: /members/{id} -> DELETE

계층 구조상 상위를 컬렉션으로 보고 복수단어 사용을 권장한다. (member -> members)

잠깐, 위 URI에서 회원 목록 조회를 제외한 나머지 기능은 /members/{id}로 모두 같다.
그럼 이를 어떻게 구분할까?

바로 HTTP method를 통해 행위를 구분한다.
비로소, 리소스 (회원)행위 (조회, 등록, 수정, 삭제)를 구분할 수 있게 된다.

주로 많이 사용되는 HTTP 메서드로는 GET, POST, PUT, DELETE, PATCH 이다.

  • GET: URI를 통해 리소스를 조회한다.
  • POST: <form>을 통해 값을 전달하는 과정에서 사용되는, post 방식을 생각하자. 주로 등록에 사용된다.
  • PUT: 리소스를 대체, 수정 할 때 사용된다.
  • DELETE: 말그대로 리소스를 삭제할 때 사용된다.
  • PATCH: 리소스 부분 변경에 사용된다.

다만 예외의 경우 URI를 리소스로만 설계하기 어려울 때는 컨트롤 URI를 이용하자.
ex) POST /orders/{orderId}/start-delivery
이는 주로 POST 방식에서 사용된다.

참조: 인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식

profile
newBlog == https://kdkdhoho.github.io

0개의 댓글