GET
- 리소스 조회
- 서버에 전달하는 데이터는 query(쿼리 파라미터)를 통해서 전달
- 메시지 바디를 사용해서 전달 가능 -> 지원하는 곳이 별로 없으므로 권장 X
POST
- 요청 데이터 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 주로 전달된 데이터는 신규 리소스 등록 및 프로세스 처리에 사용
= 리소스마다 POST 요청이 오면 요청 데이터를 어떻게 처리할지 정해둬야됨
PUT
- 리소스 완전히 대체 (덮어쓰기), 없으면 생성
- 클라이언트가 리소스를 식별
ㄴ 클라이언트가 리소스 위치를 알고 URI 지정
PATCH
- 리소스 부분 변경
DELETE
- 리소스 제거
메서드 속성
아래 사항들은 외부 요인 없이 본인만 호출하거나 해당 데이터만을 원칙으로 함
1) 안전
- 호출해도 리소스를 변경하지 않는다
2) 멱등 (Idempotnet)
- f(x) = f(f(x))
- 한 번 호출한 결과가 여러번 호출한 결과와 같다
판단기준
서버가 어떠한 이유로 클라이언트에게 정상 응답을 주지 못하였을 때, 클라이언트가 같은 요청을 다시 해도 되는가?
(서버가 정상적으로 기능을 수행하였는지 안했는지 클라이언트는 응답을 받지 못하였기에 모르는 경우)
3) 캐시 가능 (Cacheable)
- 응답 결과 리소를 캐시해서 사용함
- POST, PATCH 경우 가능하지만 본문 내용의 키를 캐시 키로 고려해야하는 부분 때문에, 구현이 쉽지않음
API URI 설계 시 참고
- 리소스만 URI에 매핑
- 특정 기능은 HTTP 메서드를 통해서 ( 조회, 등록 등등)
참고 자료