2017-03-05 11 views
1

가끔씩 사용자가 자원을 업데이트하기 위해 서버로 데이터를 보내지 않지만 자원이 자동으로 서버에 의해 갱신됩니다. 가장 좋은 예는 프로필을 비활성화하는 것입니다. 아래의 예를 설명합니다.HTTP 메소드 - POST vs. PATCH 또는 PUT - 사용자가 실제로 아무 것도 업데이트하지 않을 때

예 : 사용자가 자신의 프로필을 비활성화하려고 시도하므로 사용자가 /users/{u_id}/deactivate URI를 호출합니다. 이 예에서 사용자는 실제로 아무것도 업데이트하지 않지만 비활성화 된 열은 서버에 의해 업데이트됩니다. 이 경우 적합한 HTTP 메소드는 무엇입니까?

답변

2

이 작업으로 시스템에서 "소프트 삭제"를 수행하는 경우 HTTP DELETE를 사용할 수 있습니다. URL은 /users/{u_id}으로 유지되며 Http 상태 204 No Content로 응답 할 수 있습니다. 이는 서버가 작업을 수행 했으므로 응답 본문에 아무 것도 보낼 필요가 없음을 의미합니다.

사용자의 단일 속성을 업데이트하는 경우이며 호출 시스템에서 값을 제공하는 경우 PATCH가 더 적합했을 것입니다. 그러나이 서버는 계정을 비활성으로 표시하기 때문에; 삭제를 선택합니다