HTTP API 설계 예시
HTTP API - 컬렉션
POST 기반 등록
ex) 회원 관리 API 제공
API 설계 - POST 기반 등록
회원 목록 /members -> GET
회원 등록 /members -> POST
회원 조회 /members/{id} -> GET
회원 수정 /members/{id} -> PATCH > PUT > POST
회원 삭제 /members/{id} -> DELETE
회원 수정을 고민 해봐야 한다!
(게시글 수정시 PUT을 생각 해볼수있다)
POST - 신규 자원 등록 특징
클라이언트는 등록될 리소스의 URI를 모른다
회원 등록 /members -> POST
POST/ members
서버가 새로 등록된 리소스 URI를 생성해준다
HTTP/1.1 201 Created Location: /members/100
컬렉션(Collection)
서버가 관리하는 리소스 디렉토리
서버가 리소스의 URI를 생성하고 관리
여기서 컬렉션은 /members
파일관리 시스템
API 설계 - PUT 기반 등록
파일 목록 /files ->
파일 조회 /files ->
파일 등록 /files ->
파일 삭제 /files ->
파일 대량 등록 /files ->
HTTP FORM 사용
HTML FORM은 GET , POST만 지원
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
GET , POST만 지원하므로 제약이 있음
이런 제약을 해결하기 위해 동사로 된 리소스 경로 사용
POST의 /new , /edit , /delete가 컨트롤 URI
HTTP메소드로 해결하기 애매한 경우 사용(HTTP API 포함)
HTTP API - 컬렉션
POST기반 등록
서버가 리소스 URI 결정
HTTP API - 스토어
PUT 기반 등록
클라이언트가 리소스 URI 결정
HTML FORM 사용
순수 HTML + HTML FORM 사용
GET , POST만 지원
URI 설계 참고!