2016-09-26 7 views
2

조회 API 엔드 포인트가 있다고 가정합니다. 응답은 성공할 수 있고 (200), 찾을 수 없습니다 (404) ... 내 경우에는 이 (가) 하나 이상의 항목을 찾았습니다.은 오류입니다. 하나 이상의 항목을 설명 할 수있는 HTTP 상태 코드가 가장 오류가 있습니까?API : 여러 항목에 사용할 HTTP 상태 코드에 오류가 있습니까?

+0

적절한 HTTP 상태 코드를 선택하기위한 [지침] (http://racksburg.com/choosing-an-http-status-code/) –

답변

0

흥미로운 문제입니다. 조회 용 API 호출이고 여러 결과가 반환되는 경우 결과 배열이 200 인 코드가 실제로 필요합니다.

그러나 요청 자체의 형식이 잘못되어 클라이언트가 요청하는 내용이 명확하지 않은 경우 400 잘못된 요청 http 상태 코드를 보낼 수 있습니다.

멀티 상태 코드 207을 확인하십시오. 실제로이 코드는 사용자가 찾고자하는 것보다 더 가까울 수 있습니다. 어쩌면 요청 및 응답 예제를 제공 할 수 있습니까?

0

검색 API 엔드 포인트가 있다고 가정합니다. 응답은 성공 (200), 발견되지 않음 (404), 내 경우에는 하나 이상의 항목이 발견되면 오류가 발생합니다. 하나 이상의 항목을 설명 할 수있는 HTTP 상태 코드가 가장 오류가 있습니까?

서버는 요청을 완전히 이해하지만 계약의 일부를 충족하는 표현을 전달할 수 없습니다.

올바른 오류 코드는 범위에 있습니다.

5xx (서버 오류) 클래스 상태 코드는 서버가 오류가 발생했거나 요청 된 방법을 수행 할 수 없다는 것을 서버가 인식하고 있음을 나타냅니다.

전문 5XX 오류 코드 중 어느 것도, 당신은 사용 안 맞는 경우 500

500 (내부 서버 오류) 상태 코드는 서버가 요청을 처리하지 못하도록하는 예상치 못한 상황 발생했음을 나타냅니다 .

마이클 크로 패트 (Michael Kropat)는 Stop Making It Hard의 옵션을 나열하는 훌륭한 작업을 수행했습니다. 그는 내가 우리가 단지 우리가 구별 502 잘못된 게이트웨이 (업스트림 문제)가 있다면 시간을 디버깅하는 대신 500 내부 서버 오류와 혼란의 시간에 시간을 저장 한 것이라고 말할 수 있습니다에 대한 502

이 흥미로운 관찰을한다.

"게이트웨이"의 최신 정의는 RFC 7230 section 2.3 (중개자)에서 찾을 수 있습니다.

게이트웨이 ("역방향 프록시")는 아웃 바운드 연결의 원본 서버 역할을하지만 수신 된 요청을 변환하고 인바운드를 다른 서버로 전달하는 중재자입니다. 게이트웨이는 레거시 또는 신뢰할 수없는 정보 서비스를 캡슐화하고, "가속기"캐싱을 통해 서버 성능을 향상시키고, 여러 시스템에서 HTTP 서비스의 분할 또는로드 밸런싱을 가능하게하기 위해 종종 사용됩니다.

원본 서버에 적용 할 수있는 모든 HTTP 요구 사항은 게이트웨이의 아웃 바운드 통신에도 적용됩니다. 게이트웨이는이 사양의 범위를 벗어나는 HTTP에 대한 개인 확장을 포함하여 원하는 프로토콜을 사용하여 인바운드 서버와 통신합니다.

매우 매우 대략적으로 500은 "내 잘못"이며, 여기서 502/504는 손가락을 다른 곳으로 지정합니다.

내 경우에 어떤 오류 코드를 사용 하시겠습니까?

설명해 주신 내용에 따라 500입니다. "이 리소스에 대한 내 표현이 손상되었습니다."에 적합합니다.

합리적인 대안은 "이 자원의 업스트림 표현이 손상되었습니다"에 적합한 502입니다.

어느 경우 든 오류의 대상은 내부입니다 (클라이언트는 문제를 해결하기 위해 아무 것도 할 수 없습니다. 지원팀은 상태 코드를 구분하는 데 도움이되지 않을 수 있습니다). 문제가 상류라는 사실은 고객에게 아무런 관심이없는 구현 세부 사항 (500 가지 모두)과 마찬가지로 합리적으로 논쟁 할 수 있습니다. 또는 API가 수신 된 요청을 변환하고 인바운드를 다른 서버로 전달하는 게이트웨이이므로 API가 아니라 저장소에 문제가 있기 때문에 상태 코드가 있어야한다고 주장 할 수 있습니다.

그래서 "우리가 API에서 가지고있는 오류의 수를 추적 할 때 이런 종류의 문제를 예외와 내부적으로 구분하고 싶습니까?"

권위있는 지침이 부족한 것 같습니다. 방법을 선택하고, 당신의 타당성을 문서화하고, 배송하십시오.

+0

'Stop Making It Hard '참조는 굉장합니다. 내 사건에 사용합니까? – HPM