API调用返回20004 错误码

更新时间:

1. 问题背景

  • API 调用可能会报“调用后端服务时发生异常” 的错误; 这类错误可以通过表面意思来解读; 但除了API 依赖后台服务真出现异常, 还包括了一种常见的错误,就是入参类型不匹配 (cause: argument type mismatch)

2. 问题现象

response: {
  "code": 20004,
  "id": "346ff575d1bc465f92925047009da1a9",
  "localizedMsg": "调用后端服务时发生异常",
  "message": "gateway.backend service error"
}

3. 排查方法

  • 出现20004 错误码的2种可能性:

  • 后台的服务真出异常了, 后台服务返回的reponse 确实是异常

  • API 调用的参数不匹配,下面重点说明这类问题的排查

  • 遇到20004 的错误码, 根据API 网关返回的入参列表, 结合API 官方文档仔细检查入参的类型:

  • 比如下面是入参JSON

"params": {
  "iotId": 452878274,
  "checkTemperature": true,
  "minThreshold": 1,
  "maxThreshold": 1,
  "productKey": "a1ZPPPPKKKK",
  "deviceName": "CDSDGY_xx_xxxx"
}
  • 跟API 官方文档进行参数类型匹配