이번에는 HTTP의 메서드에 대해서 알아보려고한다.
우리가 HTTP API를 설계해야하는 상황이 왔을 때 우리는 HTTP 메서드에 대해서 알아두어야만 한다.
예를들어 조회, 등록, 수정 , 삭제 기능 등 여러가지 기능을 구현 할 때에 말이다.
Get : 리소스 조회
- 서버에 전달하고 싶은 데이터를 query를 통해서 전달하는 방식이다.
(메시지 바디를 통할 수도 있지만 권장하지 않는다.)
- Get 방식 (예제)
- Get /members/100 HTTP/1.1 Host: localhost:8080 이런 식으로 접근 = 요청
- members/100 안에있는 메시지 내용을 가져와서 응답 데이터를 보낸다.
Post : 요청 데이터 처리, 주로 새 리소스 등록에 사용
- 메시지 바디를 통해서 서버로 요청 데이터 전달함, 그러면 서버는 요청 데이터를 처리한다.
- Post 방식 (예제)
- Post /members HTTP/1.1 Content-Type:application/json {json 내용} 처럼 데이터를 보냄
- 서버에서는 members/100을 만들어 해당 데이터를 저장함 (처리)
- 리소스 마다 요청 데이터를 어떻게 처리해야 할 지는 따로 정해야한다.
- Get 방식으로 데이터에 접근하기 힘들다면 Post 방식을 통해 데이터를 가져와서 처리하는 방법도 있다. (어쩔 수 없는 경우)
Put : 리소스를 대체, 해당 리소스가 없으면 생성
- 리소스가 없으면 생성, 있으면 대체 한다. = 덮어쓰기
- 기존의 리소스를 완전히 대체하기 때문에 리소스를 부분변경하고 싶다면
patch를 사용하면 된다.
- 클라이언트가 리소스를 식별한다. ⇒ post와의 차이
Patch: 리소스 부분 변경