Search
Duplicate

HTTP API 설계 예시

태그
HTTP 메서드 활용
2 more properties

회원 관리 시스템

항상 리소스를 기반으로 생각하기!
URI 는 계층 구조로 설계해야 한다.

POST 기반 등록

회원 목록 /members → GET
회원 등록 /members → POST
클라이언트는 등록될 리소스의 URI 를 모릅니다. 때문에 서버가 새로 등록된 리소스 URI 를 생성해줍니다.
컬렉션(Collection)
위의 내용과 같이 POST 의 경우 서버가 리소스의 URI 를 생성하고 관리하는데요, 컬렉션은 이 때 관리하는 리소스 디렉토리를 말합니다. 예시에서 컬렉션은 /members 가 됩니다.
회원 조회 /members/{id} → GET
회원 수정 /members/{id} → PATCH, PUT, POST
개념적으로는 PATCH 로 하는 것이 좋다.
게시글 수정과 같이 내용을 완전히 덮어씌어도 되는 경우에는 PUT 을 사용해도 좋다.
둘 다 애매 할 경우에는 POST 를 사용한다.
회원 삭제 /members/{id} → DELETE

파일 관리 시스템

PUT 기반 등록

파일 목록 /files → GET
파일 조회 /files/{filename} → GET
파일 등록 /files/{filename} → PUT
PUT 을 사용할 경우 클라이언트가 리소스 URI 를 알고 있거나 직접 리소스의 URI 를 지정해야 합니다.
스토어(Store)
PUT 에서는 클라이언트가 리소스의 URI 를 알고 관리하는데요, 이때 클라이언트가 관리하는 리소스 저장소를 스토어 라고 합니다. 예시에서 /files 가 스토어라고 할 수 있습니다.
파일 삭제 /files/{filename} → DELETE
파일 대량 등록 /files → POST

HTML FORM

HTML FORM 은 GET 과 POST 만 지원합니다.
회원 목록 /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
HTML FORM 은 GET 과 POST 만 지원하기 때문에 제약이 있습니다. 때문에 HTTP 메서드로 해결하기 애매한 경우가 있는데요, 이때 사용하는 것이 컨트롤 URI 입니다. 동사로 된 리소스 경로를 사용하는 것을 말하며 위의 예시에서 POST 의 /new, /edit, /delete 가 해당됩니다.