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

Indicate failure in HTTP response from web API that interacts with machine vision cameras (or any external device)

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

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

例如请求读取多个摄像头的二维码:

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

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

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

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

特别是#2 和#3,我想知道最好的处理方式。到目前为止,我想出的最好办法是 return 一个 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},
   ]
}