Перейти к содержанию

Отправка собственного сообщения об ошибке для передачи клиенту

По умолчанию, если бэкенд сервер возвращает ошибку 4xx на REST хук connect или хук подтверждения, сообщение для отправки клиенту берется из заголовка ответа. Например, при ответе на /connect

HTTP/1.1 403 Forbidden
Date: Tue, 01 Jun 2021 04:49:40 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
X-Powered-By: PHP/5.4.16
Content-Length: 44
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive

клиенту будет отправлено Websocket сообщение

{
  "message": "fail",
  "data": [{
    "status": "FAILED",
    "info": "Forbidden",
    "apiMethod": "ConnectionStatusEvent"
  }]
}

В сборке 5.2.968 добавлена возможность вернуть собственное сообщение об ошибке в этом случае. Для этого бэкенд сервер должен вернуть следующий JSON объект

HTTP/1.1 403 Forbidden
Date: Tue, 01 Jun 2021 04:49:40 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
X-Powered-By: PHP/5.4.16
Content-Length: 44
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json

{
  "status":403,
  "reason":"Wrong credentials"
}

Клиенту будет отправлено сообщение

{
  "message": "fail",
  "data": [{
    "status": "FAILED",
    "info": "Wrong credentials",
    "apiMethod": "ConnectionStatusEvent"
  }]
}

JSON объект должен содержать только поля status и reason. При отсутствии одного из полей, либо при добавлении других полей в объект, на клиента будет отправлено сообщение в соответствии с заголовком ответа бэкенд сервера, как и по умолчанию.