문제

나는 간단한 편안한 API를 개발하고 있으며 그것이 얼마나 최소한의 모습을 좋아하는지 완전히 사랑합니다. 그러나 다양한 상황에 대한 올바른 HTTP 응답 코드에 대해서는 불확실합니다.

  1. 쿼리가 잘못 형성되었습니다

  2. 올바르게 형성된 쿼리는 존재하지 않는 리소스를 나타냅니다.

  3. 자원이 성공적으로 삭제되었습니다

  4. 리소스가 성공적으로 편집되었습니다

나는 현재 1이 될 것이라고 생각하고있다 403 Forbidden; 2 일 것입니다 410 Gone; 3과 4입니다 202 Accepted. 그들은 제대로 들리나요?

도움이 되었습니까?

해결책

#1의 경우, 403은 응용 프로그램이 요청을 이해했다고 제안하지만이를 충족시키지 못할 것을 제안합니다 (즉, 현재 사용자는 어떤 이유로 든이를 수행 할 권한이 없습니다). 이 경우 400 불량 요청이 더 의미가 있다고 생각합니다.

#2의 경우 - 404는 자원이 어느 시점에 존재하지 않는 한, 404가 삭제되지 않았다면, 410은 공정하다고 생각하지만, 410은 공정 할 것이지만, 많은 고객이 무엇을 해야하는지 알지 못한다. 410.

삭제를 성공적으로 처리 한 경우 #3 & #4- 200의 경우, 202 삭제가 대기되어 나중에 "밴드에서"처리 될 경우 202.

RFC 2616 각 응답 코드의 의미에 대한 훌륭한 설명을 공정하게 이해할 수있는 용어로 제공합니다.

다른 팁

  1. 400
  2. 404
  3. 200
  4. 200
  5. 201- 자원이 성공적으로 생성되었습니다

1). 400- 표준 불량 요청, 403은 요청이 올바르게 형식화되었지만 액세스 할 수 없습니다.

2). 404- A 410은 자원이 존재했지만 의도적으로 이동했음을 의미합니다.

삼). 그리고 4). 200 응답을 보낼 때 조치가 성공적으로 발생한 경우, 조치가 계류중인 경우 202. 실제로 202는 삭제 조치 (검토 대상이 될 수있는 경우)에 대한 가능성이 있지만 어쨌든 200을 즉시 반환하고 싶지 않을 수도 있으므로 실제로 사용자에게 삭제 된 것처럼 보일 수도 있습니다. 그것은 디자인 질문 IMHO입니다.

Richardson & Ruby 책을 얻으십시오 - 질문에 유용한 부록이 있으며 어느 쪽이든 읽어야합니다.

표준을 사용하지 않는 이유는 무엇입니까? HTTP 응답 코드 . 모든 최적화 (EX, 303, 304)/ 인프라를 무료로 제공 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top