2022.01.03

초보개발·2022년 1월 2일
0

TIL

목록 보기
9/17

HTTP API 설계 예시

  • HTTP API - 컬렉션
    POST 기반 등록 : 회원 관리 API 제공
  • HTTP API - 스토어
    PUT 기반 등록 : 정적 컨텐츠 관리, 원격 파일 관리
  • HTML FORM - GET, POST만 지원
    웹 페이지 회원 관리

1. 회원 관리 시스템

  1. API 설계 - POST 기반 등록
  • 회원 목록 /members : GET
  • 회원 등록 /members : POST
  • 회원 조회 /mebers/{id} : GET
  • 회원 수정 /members/{id} : PATCH, PUT, POST
  • 회원 삭제 /members/{id} : DELETE
  1. POST - 신규 자원 등록 특징
  • 등록될 리소스의 URI는 서버에서 생성되므로 클라이언트는 리소스 URI를 알 수 없다.
    회원등록 /members → POST
    POST /members
  • 서버가 새로 등록된 리소스 URI를 생성한다.
    HTTP/1.1 201 Created
    Location: /members/100
  • 컬렉션
    서버가 관리하는 리소스 디렉토리이며, 서버가 리소스의 URI를 생성하고 관리한다.
    여기서의 컬렉션은 /members가 된다.

2. 파일 관리 시스템

  1. API 설계 - PUT 기반 등록
  • 파일 목록 /files : GET
  • 파일 조회 : /files/{filename} : GET
  • 파일 등록 : /files/{filename} : PUT
  • 파일 삭제 : /files/{filename} : DELETE
  • 파일 대량 등록 /files : POST
  1. PUT - 신규 자원 등록 특징
  • 클라이언트가 리소스 URL을 지정하기 때문에 알고 있다.
    파일 등록 /files/{filename} → PUT
    PUT /files/image.jpg
  • 스토어
    클라이언트가 관리하는 리소스 저장소이며 클라이언트가 리소스의 URI를 알고 관리한다.
    여기서 스토어는 /files가 된다.

3. HTML FORM

  • html 폼 방식은 GET과 POST 방식만 지원한다.
    이런 제약을 해결하기 위해 동사로 된 리소스 경로를 사용하면 되는데, 이 것을 컨트롤 URI라고 한다. 위의 예시에서 POST의 /new, /edit, /delete가 컨트롤 URI이며, HTTP 메서드로 해결하기 애매한 경우에도 사용할 수 있다. (HTTP API도 마찬가지로)
  • AJAX 기술을 이용하면 다른 메서드도 사용할 수 있다.

설계

  • 회원 목록 /members : GET
  • 회원 등록 폼 /members/new : GET
  • 회원 등록 /members/new, /members : POST
  • 회원 조회 /members/{id} : GET
  • 회원 수정 폼 /members/{id}/edit : GET
  • 회원 수정 /members/{id}/edit, /members/{id} : POST
  • 회원 삭제 /members/{id}/delete : POST

🌱 정리 - 참고하면 좋은 URI 설계 개념

  • 문서(document) : 단일 개념(파일 하나, 객체 인스턴스, 데이터베이스의 row)
  • /members/100, /files/image.jpg
  • 컬렉션(collection) : 서버가 관리하는 리소스 디렉터리, 서버가 리소스의 URI를 생성하고 관리한다.
  • /members
  • 스토어(store) : 클라이언트가 관리하는 자원 저장소, 클라이언트가 리소스의 URI를 알고 관리한다.
  • /files
  • 컨트롤러(controller), 컨트롤 URI :동사를 사용해서 문서, 컬렉션, 스토어로 해결하기 힘든 추가 프로세스를 실행한다.
  • /members/{id}/delete

0개의 댓글