Control de errores
Información general overview
Los errores de API en la API de Adobe Experience Platform Edge Network Server pueden tener varias causas, internas (el propio Edge Network) o externas (relacionadas con la entrada, la configuración o el flujo ascendente).
Tipos de error error-types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
Gravedad
Los errores de API del servidor también se pueden dividir por gravedad:
- Errores irrecuperables detendrán la canalización de envíos.
- Errores no fatales podrían indicar un procesamiento parcial, al tiempo que se permite que continúe el procesamiento de solicitudes.
- Cuando está presente, el código de estado general de la solicitud se cambiará a
207 Multi-Status
.
- Cuando está presente, el código de estado general de la solicitud se cambiará a
RequestProcessingError
InputError
ConfigurationError
UpstreamError
Errores graves fatal-errors
Los errores graves detienen el procesamiento de la solicitud y hacen que se devuelva un estado de respuesta distinto de 2xx. Consulte la sección tipos de error para ver el código de estado esperado, correspondiente a cada tipo de error.
Los errores irán acompañados de un cuerpo de respuesta que contenga un objeto de error. En este caso, el cuerpo de la respuesta contiene un detalle del problema, tal como se define en Detalles del problema RFC 7807 para las API HTTP.
El tipo de contenido devuelto es el tipo de medios application/problem+json
. Cuando está presente, esta respuesta contiene detalles legibles por el equipo pertenecientes al error. Los detalles del problema incluyen un tipo de URI.
Todos los objetos de error tienen las propiedades de mensaje type
, status
, title
, detail
y report
para que el cliente de API pueda saber cuál es el problema.
type
https://ns.adobe.com/aep/errors/<ERROR-CODE>
.status
title
detail
report
{
"type":"https://ns.adobe.com/aep/errors/EXEG-0104-422",
"status":422,
"title":"Unprocessable entity",
"detail":"Invalid request (report attached). Please check your input and try again.",
"report":{
"errors":[
"Allowed Adobe version is 1.0 for standard 'Adobe' at index 0",
"Allowed IAB version is 2.0 for standard 'IAB TCF' at index 1",
"IAB consent string value must not be empty for standard 'IAB TCF' at index 1"
],
"requestId":"0f8821e5-ed1a-4301-b445-5f336fb50ee8",
"orgId":"53A16ACB5CC1D3760A495C99@AdobeOrg"
}
}
Errores no graves non-fatal-errors
Los errores no mortales pueden desglosarse en:
- Errores: problemas que se produjeron durante el procesamiento de la solicitud, pero que no provocaron que se rechazara toda la solicitud (p. ej.,. un error ascendente no crítico).
- Advertencias: Mensajes de servicios ascendentes que podrían indicar que se ha producido un procesamiento parcial de la solicitud.
Cuando encuentre errores no graves (excluidas las advertencias), Server API cambiará el estado de la respuesta a 207 Multi-Status
.
Las advertencias, por otro lado, son en su mayoría informativas, ya que generalmente representan una condición potencialmente transitoria, que no afectó la solicitud en su totalidad. Un ejemplo aquí es una lectura parcial del perfil en el motor de segmentación, en cuyo caso la precisión se ve afectada hasta cierto punto, pero la funcionalidad aún se ofrece.
Los errores no graves se representan en el formato Detalles del problema, pero están incrustados directamente en la respuesta estándar de la puerta de enlace de Edge, que es del tipo application/json
.
{
"requestId": "72eaa048-207e-4dde-bf16-0cb2b21336d5",
"handle": [
],
"errors": [
{
"type": "https://ns.adobe.com/aep/errors/EXEG-0201-503",
"status": 503,
"title": "The 'com.adobe.experience.platform.ode' service is temporarily unable to serve this request. Please try again later."
}
],
"warnings": [
{
"type": "https://ns.adobe.com/aep/errors/EXEG-0204-200",
"status": 200,
"title": "A warning occurred while calling the 'com.adobe.audiencemanager' service for this request.",
"report": {
"cause": {
"message": "Cannot read related customer for device id: ...",
"code": 202
}
}
}
]
}
Procesando 4xx
y 5xx
respuestas
4xx Bad Request
4xx
, como 400, 403, 404, no se deben volver a intentar en nombre del cliente, excepto 429
. Estos son errores de cliente y no se realizarán correctamente. El cliente debe corregir el error antes de volver a intentar la solicitud.429 Too Many Requests
429
indica que el Edge Network de Adobe Experience Platform o un servicio de flujo ascendente limita la velocidad de las solicitudes. En este caso, en tal caso, el llamador debe respetar el encabezado de respuesta Retry-After
. Las respuestas que regresen deben llevar el código de respuesta HTTP con un código de error específico del dominio.500 Internal Server Error
500
errores son errores genéricos de captador global. No se deben volver a intentar 500
errores, excepto 502
y 503
. Los intermediarios deben responder con un error de 500
y pueden responder con un código o mensaje de error genérico o con un código o mensaje de error más específico del dominio.502 Bad Gateway
502
errores pueden reintentar la solicitud después de un tiempo.503 Service Unavailable
503
errores pueden reintentar la solicitud, pero deben respetar el encabezado Retry-After
.504 Gateway Timeout