表示与机器视觉相机(或任何外部设备)交互的web API的HTTP响应失败



我的服务器连接到几个机器视觉相机,我正在创建一个REST API,使用它们执行一些操作,例如检测可见的QR码,校准白平衡和捕获图像。

其中一些操作可能会失败(对于一个或多个相机),我想知道使用最合适的HTTP响应来将此报告给客户端。

例如,请求从多个摄像机读取QR码:

POST /api/camera/readQrCode
{...JSON body identifies the cameras to use...}

(注意。POST是因为它使用读取内容的详细信息更新服务器状态)

此请求可能由于多种原因而失败,包括:

  1. 请求的摄像机不可用(404 Not Found在这里似乎是合理的)
  2. 任何相机都无法捕获图像
  3. 任何摄像头都无法检测QR码

我特别想知道处理的最佳方法是#2和#3。到目前为止,我想到的最好的方法是返回200 OK响应并发送一个JSON响应,该响应描述了每个相机的总体成功和单个状态,例如:

{
success: false,
cameraResults: [
{"cameraId": "123", success: true},
{"cameraId": "456", success: false},
]
}

它只是感觉不一定正确使用2xx代码,也不是#2或#3客户端错误(4xx),我看不到任何合适的5xx代码。我很想听听别人是怎么看待这里的传统的。

谢谢

最后我采用了我在最后提出的解决方案,现在已经足够好了:

200 OK响应和一个形式为

的结果对象
{
success: false,
cameraResults: [
{"cameraId": "123", success: true},
{"cameraId": "456", success: false},
]
}

相关内容

  • 没有找到相关文章