2016-09-21 4 views
1

여러 소스의 데이터를 집계하고 형식을 지정하고 JSON 페이로드로 다시 제공하는 REST API가 있습니다.REST API에서 불완전한 결과를 반환하는 올바른 방법은 무엇입니까?

/API/ㅋ/자원

[ 
    { 
     "name": "resource1", 
     "value": 19, 
     "foo": "bar" 
    }, 
    { 
     "name": "resource2", 
     "value": 68, 
     "foo": "baz" 
    }, 
    { 
     "name": "resource3", 
     "value": 88, 
     "foo": "blee" 
    } 
    //etc... 
] 

는 그러나, 나는 집계하고있는 소스 중 일부는 신뢰할 수 있고, 그들에게 요청 제한 시간을 초과 할 수 있습니다, 실패, 또는 ​​간헐적으로 응답을 얻을 수 없습니다. 이 집합의 일부가 실패하면

[ 
    { 
     "name": "resource1", 
     "value": 19, 
     "foo": "bar" 
    }, 
    //resource2 is missing :c 
    { 
     "name": "resource3", 
     "value": 88, 
     "foo": "blee" 
    } 
    //etc... 
] 

, 그들은 요청하는 데이터가 불완전 내 REST API의 소비자를 통보하는 가장 좋은/편안하고/올바른 방법은 무엇입니까?

+0

잘 모르겠습니다. 재미있는 질문. 리소스에 상태 속성을 추가해야하므로 누락 된 원격 리소스에 대해 'status : "시간 초과"또는 이와 유사한 내용을 설정할 수 있습니다. – inf3rno

+0

그래도이 오류 사례에서 누락 된 특정 리소스를 반드시 알 필요는 없으므로이 경우 자리 표시자를 사용할 수 없습니다. – 72A12F4E

+0

적어도 시간 제한이 발생한 리소스를 알고 있다고 생각했습니다. 클라이언트 관점에서 볼 때 일부 리소스를 사용할 수없는 것이 중요합니까? – inf3rno

답변

-1

특수 HTTP 상태 코드를 사용해야합니다. 완벽한 것을 찾을 수 있습니다 here

+0

206 부분 콘텐츠는 잠재적 인 것처럼 보였지만 클라이언트가 보낸 일부 색인에서 파일의 일부를 다운로드하는 특정 용도로 사용했다고 생각합니다. 실제로 사용 범위를 요청하거나 파일의 일부를 다운로드하지 않아 불완전한 내용을 얻고 있기 때문에 올바른 사용법은 아닐 것입니다. – 72A12F4E

+0

@ 72A12F4E Yepp, afaik 그것은 범위 요청을 처리하기위한 것이므로 해결하지 못합니다. 문제. – inf3rno

관련 문제