Códigos de respuesta y errores de la API de servidor a servidor

Documento

Códigos de respuesta

Cuando se integra con la API de Singular, todas las respuestas devuelven códigos de estado HTTP 200, que requieren la validación del campo "status" del cuerpo de la respuesta para determinar el éxito ("ok") o el fracaso ("error").

La carga útil de la respuesta incluye un campo"reason" que proporciona información detallada sobre el error cuando el estado es"error".

Recomendaciones

  • Implementar un mecanismo de reintentos exponencial con un máximo de intentos configurable, excluyendo errores no reintentables como parámetros inválidos.
  • Mantener el orden de las peticiones durante los reintentos para garantizar la coherencia de los datos.
  • Para una depuración y supervisión adecuadas, registre todas las solicitudes fallidas, incluidos los parámetros originales, los mensajes de error, los identificadores de dispositivo y las marcas de tiempo. Realice un seguimiento de los intentos de reintento e implemente un sistema de notificación para los fallos críticos. El formato de respuesta a errores sigue una estructura JSON coherente con campos de estado y motivo.

Esta completa estrategia de gestión de errores garantiza una sólida integración de la API, al tiempo que mantiene la precisión de los datos y proporciona una clara visibilidad de los posibles problemas.

Éxito

A continuación se identifica una respuesta satisfactoria de la API a una solicitud.

Respuesta HTTP
200 - ok

El 200 - ok sin ningún error o razón en el cuerpo de la respuesta significa que la solicitud fue enviada a la cola para su procesamiento.

Respuesta:
{
    "status": "ok"
}

Errores

A continuación se identifican los mensajes de error que la API podría devolver como respuesta a una solicitud.

Respuesta HTTP
200 - error

El código de respuesta 200 - error con 'reason' de "missing argument: {param}".

Este error sólo se producirá para parámetros específicos y no para todos los parámetros requeridos.

Si falta el parámetro o falta el valor, puede recibir un error de argumento faltante. El error debe ser resuelto y la solicitud reenviada.

Respuesta:
{
    "status": "error",
    "reason": "missing argument: a"
}
200 - error

El código de respuesta 200 - error con "reason" de "invalid platform: {platform}". Esto significa que el valor de la plataforma no es válida.

El error debe ser resuelto y la solicitud reenviada.

Respuesta:
{
    "status": "error",
    "reason": "invalid platform: Desktop"
}
200 - error

El código de respuesta 200 - error con 'reason' de "no device ID supplied". El identificador del dispositivo no se incluyó en la solicitud.

Se debe resolver el error y volver a enviar la solicitud.

Respuesta:
{
    "status": "error",
    "reason": "no device ID supplied"
}
200 - error

El código de respuesta 200 - error con 'reason' de "platform: {platform} debería tener un parámetro {identifier}". El error significa que la plataforma especificada no tiene el identificador de dispositivo correcto.

El error debe ser resuelto y la solicitud reenviada.

Respuesta:
{
    "status": "error",
    "reason": "platform: PC should have an sdid param"
}
XXX

Las solicitudes deben ser reintentadas si no se recibe un 200 - ok.