HTTP Method
1.POST
I.새 리소스 생성(등록)
- 서버가 아직 “식별하지 않은” 새 리소스 생성
ex) 회원(리소스)에서 가입기능(method)
ex) 회원(리소스)에서 수정기능(method)
II. 요청 데이터 처리
- 단순히 데이터를 생성하거나, 변경하는 것을 넘어서 프로세스를 처리해야하는 경우
ex) 주문에서 결제완료 → 배달시작 → 배달완료 같은 단순히 값 변경을 넘어
프로세스의 상태가 변경되는 경우
- POST의 결과로 새로운 리소스가 생성되지 않을 수도 있을때 컨트롤 URI 사용
ex) POST /orders/{orders{/start-delivery (컨트롤 URI)
2. PUT
I. 리소스를 대체
- 리소스가 있으면 “완전히” 대체
- 리소스가 없으면 생성
ex) 폴더안에 새로운 폴더를 만들때 기존에 있는 폴더면 덮어쓰고 없으면
새폴더 생성 하는 개념과 비슷함.
II. *클라이언트가 리소스를 식별
- 클라이언트가 리소스 위치를 알고 URI 지정
- POST와 차이점
ex) POST /members HTTP/1.1 PUT /members/100 HTTP/1.1
Content-Type: application/json Content-Type: application/json
{ {
“username” : “lee”, “username”: “lee”,
“age” : 20 “age”: 20
} }
POST 는 리소스 위치를 알지 못하지만 PUT은 100 이라고 정확이 알고있다.
III. 리소스를 완전히 변경하기 때문에 부분 수정이 어렵다.
- 이때 사용하는것이 PATCH!
결론)
- PUT은 리소스를 완전히 대체하기 때문에 완전히 대체 하지 않고 부분만 수정하고 싶을때 PATCH를 사용하면 된다.
- PATCH가 지원이 안되는 서버가 존재 할 수 있다. 그런 경우에는 POST를 쓰면된다 .
'WEB > web 지식' 카테고리의 다른 글
HTTP API 설계 예시 (0) | 2022.10.01 |
---|---|
client to server (0) | 2022.10.01 |
HTTP API 설계 (0) | 2022.10.01 |
HTTP 메시지 구조 (0) | 2022.10.01 |
web 인증 방식 (0) | 2022.09.22 |
댓글