본문 바로가기

백/spring boot

@PostMapping vs @PutMapping

PostMapping, PutMapping의 차이점을 생각안하고 그냥 생성 -> post / 수정 -> put 이런식으로 개발했었는데

리뷰등록 구현 관련해서 PostMapping인지 PutMapping인지 헷갈렸었다

 

<리뷰 등록 알고리즘>

: ReviewDto가 8가지의 태그 항목에 대한 boolean 값을 담고 이를 ReviewService에게 넘겨준다.

넘겨받은 값이 true라면, Review 테이블에 저장된 int 값을 +1 해주어 Review 엔티티 저장하기

 

Put과 Post의 차이

-> "멱등성" : 동일한 요청을 한 번만 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 가지고, 서버의 상태도 동일하게 남는다

 

Put : 멱등성 가짐

Post : 멱등성 안 가짐

 

ex)

게시글 수정(PutMapping) -> 같은 요청을 여러번 요청을 보내도 서버에는 계속 같은 값이 저장됨.
리뷰 등록 -> 같은 dto로 요청을 여러번 보내면 서버에서는 계속 그걸 바탕으로 +1 시켜서 저장된 값이 계속 바뀜. 

 

따라서 PostMapping으로 리뷰 등록 api 개발!