2012-10-17 2 views
7

간단한 질문 : 내 리소스에서 HTTP POST/PUT 메서드를 통해 데이터 (콘텐츠)를 보내지 않으면 어떻게됩니까? - 여전히 RESTful입니까?데이터가없는 PUT, RESTful입니까?

물론 질문이있는 경우 데이터없이 PUT을 사용하고 싶습니다. 자신의 비밀번호를 재설정하려는 사용자를 상상해보십시오 (예 : this older topic).

당신은 어떻게 생각하십니까? POST/PUT 방식으로 콘텐츠를 보내지 않아도됩니까? 개인적으로 나는 그것에 아무런 문제가 없지만 다른 사람들이 뭐라고 말할지 궁금하다.

답변

5

네, 그렇습니다. 데이터없이 수행 될 때 각 조치 (콜렉션으로의 POST, 자원에 대한 PUT)는 새로운 "비어있는"자원을 작성해야합니다. 여기서 "비어있는"의 정의는 무엇이 표현되고 있는지에 달려있다.

그러나 사용자 비밀번호를 재설정하는 구체적인 경우에는 위 모델이 적용된다고 말하지 않습니다. 실제로 암호 자원이있는 경우 데이터가없는 PUT은 암호를 재설정하지 않고 비워 두는 것이 좋습니다. 이 시나리오에서는 해당 질문의 대답을 받아 들일 것입니다.

3

POST 또는 PUT에서 데이터를 저장하지 않아도 안전합니다. 당신이 무언가를하지 않는다면 (요청이 자원을 수정하거나 생성한다는 것을 의미 함), GET을 사용할 필요가 없습니다 (통과 할 데이터가 있는지 없는지). 예를 들어 RESTful 웹 서비스를 사용하면 요청 시간과 리소스 URL 히트가 일부 리소스를 생성하거나 수정하는 데 필요한 모든 사항을 고려하므로 요청 데이터가 필요하지 않습니다.

관련 문제