회원 정보 관리 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
이다.
조회
한다.<form>
을 통해 값을 전달하는 과정에서 사용되는, post 방식을 생각하자. 주로 등록
에 사용된다.대체
, 수정
할 때 사용된다.삭제
할 때 사용된다.부분 변경
에 사용된다.다만 예외의 경우 URI를 리소스로만 설계하기 어려울 때는 컨트롤 URI를 이용하자.
ex)POST /orders/{orderId}/start-delivery
이는 주로POST
방식에서 사용된다.