반응형
- 일반적으로 HTTP API는 POST를 기반으로하는 시스템과 PUT으로 하는 시스템으로 나뉜다.
- 그 외에도 HTML FORM만을 사용하면서 Control URI라고 하는 것을 활용해 여러 작업을 수행할 수도 있다.
HTTP API : POST 기반
- POST 기반 API의 대표적인 시스템으로는 회원관리 시스템이 있다.
- 회원 등록을 POST로 진행한다.(물론 회원 수정이나 조회, 삭제 등에는 각각 PATCH, GET, DELETE 메서드가 사용될 수 있다.)
- EX :
POST /members
- 사용자가 등록하는 리소스의 URI를 모른다는 특징이 있다.
- 이처럼 POST를 기반으로 하여 클라이언트가 새로 등록될 리소스의 URI를 모르는 시스템을 컬렉션이라고 부른다.
HTTP API : PUT 기반
- PUT 기반 API의 대표적인 시스템으로는 파일 관리 시스템이 있다.
- 파일 등록을 PUT으로 진행한다.(물론 파일 조회나 삭제 등에는 각각 GET, DELETE 메서드가 사용될 수 있다. 파일을 대량으로 등록하는 경우 POST를 사용할 수도 있다.)
- EX :
PUT /files/{filename}
- 사용자가 등록하는 리소스의 URI를 알고 있어야 한다.
- 이처럼 PUT을 기반으로 하여 클라이언트가 새로 등록될 리소스의 URI를 알아야하는 시스템을 스토어라고 부른다.
HTTP API : HTML FORM 사용
- HTML FORM은 주로 GET과 POST 메서드만을 지원한다. (AJAX같은 기술을 이용하면 해결할 수 있지만 여기서는 논외로 처리)
- 따라서 어느정도의 제약이 존재하는데, 이를 Control URI 혹은 Controller라고 하는 동사형태의 URI를 사용해 해결한다.
- Control URI는 URI에 추가적으로 동사형태의 URI를 지원해 사용자가 GET 혹은 POST 메소드로 요청을 보내더라도 그 이상의 작업을 서버 내부적으로 수행할 수 있도록 처리한다.
- EX : 회원 삭제
POST /members/{id}/delete
/ 회원 수정POST /members/{id}/edit
- Control URI는 분명 필요하지만 무식하게 사용해선 안되고, 최대한 리소스 중심으로 API를 설계해야 함에 주의
반응형
'💻 CS > 네트워크' 카테고리의 다른 글
[Network] HTTP 일반헤더 (0) | 2021.07.06 |
---|---|
[Network] HTTP 상태코드 (0) | 2021.06.26 |
[Network] HTTP 메서드 활용 (0) | 2021.06.10 |
[Network] HTTP 메서드 기초 (0) | 2021.05.16 |
[Network] HTTP 프로토콜 (0) | 2021.04.09 |