我正在开发一种API,该API可以接受以下格式的多张图片上传请求:
{
"images"[
{"url": 'www.xyz/image1.jpg', 'type': 'abc'},
{"url": 'www.xyz/image2.jpg', 'type': 'def'}
]
}
响应包含每个图像的成功和失败消息:
{
"error": {
abc": "Error while downloading image: servname or nodename not known"
},
"success": {
"def": "image got uploaded successfully"
}
}
现在,我想知道该响应可能仅包含成功,仅错误或成功与错误消息的混合,应该为该响应返回什么状态代码。应该为此使用通用状态代码,还是根据响应中是否仅包含错误,成功或两者,状态代码应该不同?
答案 0 :(得分:1)
考虑WebDAV RFC中定义的[207 Multi-Status Response][1]
。
多状态响应传达有关多种资源的信息 在可能需要多个状态代码的情况下。的 默认的多状态响应主体是text / xml或application / xml 具有“ multistatus”根元素的HTTP实体。其他元素 包含在此期间生成的200、300、400和500系列状态代码 方法调用。不应记录100系列状态代码 在“响应” XML元素中。
答案 1 :(得分:0)
您可以返回HTTP响应200,并让响应主体包含更多详细信息。 另外,您还应该有一种将请求映射到响应的方法,以便您知道哪个成功/错误消息与哪个请求相对应。 您可以将请求发送为:
{
"images" : [
{"key": "1", "url": 'www.xyz/image1.jpg', 'type': 'abc'},
{"key": "2", "url": 'www.xyz/image2.jpg', 'type': 'def'},
{"key": "3", "url": 'www.xyz/image3.jpg', 'type': 'abc'}
]
}
并且响应正文为200 OK:
{
"images" : [
{"key": "1", "status": "success", "message": "OK"},
{"key": "2", "status": "failure", "message": "some specific error"},
{"key": "3", "status": "failure", "message": "some specific error"}
]
}