RestAPI에서 데이터의 일부를 바꾼다면...

이주희·2023년 11월 7일
0

spring

목록 보기
13/16
post-custom-banner

멱등성이란?

수학에서 사용하는 용어로 같은 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질을 뜻한다..!

RESTAPI에서 HTTP Method에는 크게 Get, Post, Put, Delete가 있다
여기서 Get, Put, Delete는 멱등성을 가지고, Post만 멱등성을 가지지 않는다고 함

-> 같은 요청을 여러번 보냈을 때 응답이 같아야 멱등성이 유지된다고 함

  • Get은 데이터 변경이 없으므로 멱등성 유지
  • Put,Delete는 기존 데이터 변경 연산이므로 여러번 요청이 있더라도 결과는 같음
  • Post는 같은 요청이 계속해서 보내지면 데이터가 계속 변경된다...

일부 데이터를 변경한다면

일반적으로 데이터 변경에는 PutMapping을 사용하지만
PutMapping은 데이터 전체를 덮어쓴다는 특징이 있음

-> PostMapping 또는 PatchMapping 둘 중 고민함

둘다 데이터 일부를 변경한다는 점에서 PutMapping의 문제를 해결해줌

PatchMapping은 데이터 일부를 변경할 때 쓰는 용도라 용도와 사용이 같아 다른 사람이 보기에도 용도 파악이 된다는 점에서 더 좋음

postMapping에서 데이터 일부 수정을 하게 된다면 멱등성은 보장이 된다( @PostMapping 자체가 멱등성을 보장하지 않는다기 보다는 PostMapping이 하는 일이 멱등성 보장이 안된다고 생각하는것이 맞다)
하지만 용도와 사용이 다르기 때문에 PatchMapping을 사용하는 것이 더 바람직해보인다.

post-custom-banner

0개의 댓글