멱등 vs 비멱등
멱등 : 여러 번 요청해도 결과가 동일하다.
비멱등 : 여러 번 요청하면 그 결과가 누적돼서 나온다. (동일하지 않다)
- GET으로 조회하는 것은 멱등하다
- 새로고침을 여러번 한다고 해서 페이지가 바뀌는 경우는 없다.
- DELETE도 멱등하다.
- 삭제하고, 두번째 삭제에서는 삭제할 게 없어서 삭제된 것 처럼 표시된다.
- PUT 멱등하다.
- 해당 리소스를 완전히 교체해 버리기 때문에 멱등이다.
- PATCH 는?
- 아래 참고
PATCH vs PUT
PUT : 자원의 전체 교체
PATCH : 자원의 부분 교체
PUT 잘못된 예시 | PUT 옳은 예시 | PATCH | |
---|---|---|---|
원본 데이터 | { "name" : "Hyeong","age" : 20 } | ||
요청 body | PUT /user/1 { "age" : 25 } | PUT /user/1 { "name" : "Hyeon", "age" : 25 } | PATCH /user/1 { "age" : 25 } |
결과 | { "name" : null, "age" : 25 } | { "name" : "Hyeon", "age" : 25} | { "name" : "Hyeong", "age" : 25 } |
PATCH
다음과 같은 경우는 멱등이다.
{ "name" : "Hyeong" }
호출할 때 마다 나이를 10 더하는 식으로 변경하고 싶다고 가정하자.
그랬을 때, 다음과 같은 경우는 비멱등이다.
{
"operation" : "add",
"age" : 10
}
결론
PATCH 메서드는 나중에 따로 만들어진 스펙이다 - PATCH Method for HTTP
멱등, 비멱등에 대한 구분은 결국 서버 측에서 API를 만드는 개발자가 구현해야한다.
멱등이 될수 있고, 비멱등이 될 수 있다.
Reference
https://papababo.tistory.com/entry/HTTP-METHOD-PUT-vs-PATCH-%EC%B0%A8%EC%9D%B4%EC%A0%90
https://stackoverflow.com/questions/28459418/use-of-put-vs-patch-methods-in-rest-api-real-life-scenarios
'Java > Web' 카테고리의 다른 글
[Network] REST API, RESTful 이해와 설계 방법 (0) | 2022.03.17 |
---|