POST 기반 설계
회원관리 시스템 API
- 회원 등록
POST /members
- 회원 목록
GET /members
- 회원 조회
GET /members/{id}
- 회원 수정
PATCH, PUT, POST /members/{id}
- 보통 PATCH를 사용하지만, 게시판의 게시글을 수정하는 경우 PUT을 사용해도 무방
- 회원 삭제, 탈퇴
DELETE /members/{id}
- 특징
- 신규 resource를 등록 시 클라이언트는 등록될 resource의 URI를 모른다 알 수 없다.
- 서버가 주도하여 URI를 만들고 관리하며 클라이언트는 요청만 할 뿐이다.
- 서버가 관리하는 resource 디렉토리를 컬렉션(Collection)이라고 하며 여기서 컬렉션은 /members가 된다.
PUT 기반 설계
파일관리 시스템 API
- 파일 등록
PUT /files/{filename}
- 파일 목록
GET /files
- 파일 조회
GET /files/{filename}
- 파일 삭제
DELETE /files/{filename}
- 파일 대량 등록
POST /files
- 특징
- 신규 resource 등록시 클라이언트가 request시 filename을 넣어서 보내기 때문에 클라이언트가 resource의 URI를 알고 있다.
- ex)
PUT /files/Strawberry.jpg
- 클라이언트가 관리하는 resource 저장소를 스토어(Store)라고 하며 클라이언트가 resource의 URI를 알고 관리하는 것을 말한다 여기서 스토어는 /files가 된다.
회원관리 시스템 API
- 회원 등록폼
GET /members/new
- 회원 등록
POST /members/new
- 회원 목록
GET /members
- 회원 조회
GET /members/{id}
- 회원 수정폼
GET /members/{id}/edit
- 회원 수정
POST /members/{id}/edit
- 회원 삭제, 탈퇴
POST /members/{id}/delete
- 특징
- HTML FORM은 GET, POST method만 지원하기 때문에 제약이 있음, 하지만 Ajax를 사용해 해결 가능
- 제약을 해결하기 위해 동사로 된 resource 경로를 사용(컨트롤 URI)하며 등록, 수정, 삭제의 /new, /edit, /delete가 컨트롤 URI다.
- HTTP method로 해결하기 어려운 경우 사용한다.(HTTP API포함)