2013-05-27 1 views
0

은 좀 편안하고 최선의 연습 문제를 얻었다. 응답하는 좋은 방법은 무엇입니까? 200 OK는 나에게 가장 자연스럽지 만 202 Accepted와 같은 코드도 있습니다. 후자를 사용하면 OK 응답 만 아니라 서버가 처리하는 것이 클라이언트에게 더 분명하게 들릴 수 있습니다.담기위한 상태 코드와 행동 편안하고 있다는 및 삭제 모범 사례

2) 서버가 동일한 자원에 대해 다른 DELETE 요청을 수신하는 경우. 여기서 가장 좋은 방법은 404 리소스를 찾을 수 없거나 200 OK (또는 202 OK) 만 응답하고 DELETE와 PUT가 멱등수가되어야한다는 논리와 함께 응답합니까?

3) 서버가 PUT 요청을 받지만 레코드를 데이터베이스에서 찾을 수 없습니다. 당신은 무엇으로 반응합니까? 404? 우리가 클라이언트에게 진정한 "웹 404"가 아니지만 우리가 찾았지만 리소스를 찾을 수 없다는 사실을 알려주고 싶다는 목표를 가진 다른 코드?

4) 상태 코드 이외의 메시지로 언제 응답합니까?

200 OK { "message": "고객이 삭제"}

중복 느낀다.

답변

0

1) 이해가 안됩니다. 200 여기에 맞습니다. 202는 다른 것입니다 ("요청은 처리가 허용되었지만 처리가 완료되지 않았습니다.").

2) 중요하지 않습니다. 정말.

3) 그런 다음 레코드를 만듭니다.

4) 확인보다 더 말할 필요가없는 경우 다음을 수행하십시오.

+0

줄리안. 2) 정말요? Idempotency의 관점에서 생각하는 것은 어떻습니까? GET, HEAD, PUT, DELETE, OPTIONS 및 TRACE는 모두 멱상수 조작을위한 것입니다. 즉, "N> 0 동일한 요청의 부작용은 단일 요청과 동일합니다."(RFC2616 §9.1.2) 3) 그러나 PUT은 리소스를 업데이트하고 알고있는 PUT 상태를 사용해야합니다 그것은 ID와 같은 자원 (locator)의 일부입니다. 권리? 클라이언트는 자신의 ID로 리소스를 생성 할 수 없습니다. – imbageek

+0

2) 부작용은 동일합니다. 상태 코드 만 다릅니다. 3) PUT은 또한 자원을 생성 할 수 있습니다. 클라이언트가 자신의 URI를 선택할 수 있도록하려는 경우에는 아무 문제가 없습니다. 당신은 그것을지지 할 필요는 없지만 그렇게 할 수는 있습니다. –