✅ HTTP API를 만들어보자

  1. HTTP API를 만들어보자
  2. HTTP 메서드 - GET, POST
  3. HTTP 메서드 - PUT, PATCH, DELETE
  4. HTTP 메서드의 속성

요구사항 ex) 회원 정보 관리 API를 만들어라

  1. 회원 목록 조회
  2. 회원 조회
  3. 회원 등록
  4. 회원 수정
  5. 회원 삭제

API URL 설정: 초보 개발자

  1. 회원 목록 조회 : /read-member-list
  2. 회원 조회 : /read-member-by-id
  3. 회원 등록 : /create-member
  4. 회원 수정 : /update-member
  5. 회원 삭제 : /delete-member

—> 이것은 좋은 URI 설계일까?

—> 가장 중요한 것은 리소스 식별


API URI 고민

  1. 리소스의 의미는 뭘까?

    • 회원을 등록하고 수정하고 조회하는게 리소스가 아니다! ex) 미네랄을 캐라 —> 미네랄이 리소스
    • 회원이라는 개념 자체가 바로 리소스이다.
  2. 리소스를 어떻게 식별하는게 좋을까?

    • 회원을 등록하고 수정하고 조회하는 것을 모두 배제
    • 회원이라는 리소스만 식별하면 된다. —> 회원 리소스를 URI에 매핑

API URL 설정: 위 상황 고려

  1. 회원 목록 조회 : /members
  2. 회원 조회 /members/{id} —> 어떻게 구분하지?
  3. 회원 등록 : /members/{id} —> 어떻게 구분하지?
  4. 회원 수정 : /members/{id} —> 어떻게 구분하지?
  5. 회원 삭제 : /members/{id} —> 어떻게 구분하지?

참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장 ( member —> members )


리소스와 행위를 분리: 가장 중요한 것은 리소스를 식별하는 것

  1. URI는 리소스만 식별
  2. 리소스와 해당 리소스를 대상으로 하는 행위를 분리

    • 리소스 : 회원
    • 행위 : 조회, 등록, 삭제, 변경
  3. 리소는 명사, 행위는 동사
  4. 행위는 어떻게 구분??? —> HTTP 메서드 : GET, POST로