2011-02-16 5 views
0

처리 할 항목 목록이있는 서비스가 있습니다.부분 성공/오류에 대한 http 코드

각 항목은 백엔드에서 한 번에 하나씩 처리됩니다. 모든 항목이 완료되면 서비스는 항목의 원래 목록을 포함하지만 각 줄에 성공 또는 실패 상태가 포함 된 문서를 반환합니다.

예 :

PUT - 몸 :

[ 
    {"item" : 1}, 
    {"item" : 2}, 
    {"item" : 3} 
] 

reponse - 몸 :

[ 
    {"item" : 1, "state" : "OK"}, 
    {"item" : 2, "state" : "OK"}, 
    {"item" : 3, "state" : "FAILED"} 
] 

문제는 지금 : 항목 중 하나가있는 경우 사용해야합니까 코드를 반환 실패한? 올바른 http 일치 코드를 찾을 수없는 것 같습니다. 실패한 것이지만 다시는 그렇지 않습니다. 그러나 allmost;)?

답변

0

HTTP의 관점에서 볼 때 성공했습니다. 200 명이 반환됩니다. 요청이 성공적으로 수신되어 처리되었습니다.

이제 앱에 문제가 없는지 확인해보세요.

그러나 수명을 늘리기 위해 응답에 오류 필드를 추가 할 수 있습니까?

0

더 나은 아이디어는 207 다중 상태 응답을 사용하는 것이지만 POST에서 데이터를 보내는 것입니다.

많은 항목을 업로드/업데이트하는 경우 많은 일이 발생합니다. 다중 상태 응답에서 다음과 같이 각 작업과 특정 응답을 대응할 수 있습니다.

<response> 
    <item id="1"> 
    <status>200 OK</status> 
    </item> 
    <item id="2"> 
    <status>403 Forbidden</status> 
    </item> 
</response> 
+0

예제에서는 XML을 사용하는데, 이는 원하는 것이 아닐 수 있습니다. – Kylar

+1

207 WebDAV – drankard

+0

용으로 구현 된 표준 코드가 아닙니다. HTTP * 전용 * 서비스로 지정하지 않았습니다. 많은 서비스가 필요에 따라 확장을 적용합니다. 엄격하게 RFC 2616을 준수해야 함을 지정하기 위해 질문을 편집 할 수 있습니다. – Kylar