Traitement des erreurs
Vue d’ensemble overview
Les erreurs d’API dans l’API Adobe Experience Platform Edge Network Server peuvent avoir diverses causes, internes (Edge Network lui-même) ou externes (entrée, configuration ou lien en amont).
Types d’erreur error-types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
Gravité
Les erreurs de l’API du serveur peuvent également être fractionnées par gravité :
- Erreurs fatales arrêtera le pipeline d'envoi.
- Erreurs non fatales peut signaler un traitement partiel, tout en permettant la poursuite du traitement des demandes.
- Lorsqu’il est présent, le code d’état global de la requête est remplacé par
207 Multi-Status
.
- Lorsqu’il est présent, le code d’état global de la requête est remplacé par
RequestProcessingError
InputError
ConfigurationError
UpstreamError
Erreurs fatales fatal-errors
Des erreurs irrécupérables interrompent le traitement de la requête et entraînent le renvoi d’un état de réponse non 2xx. Consultez la section types d’erreur pour afficher le code d’état attendu, correspondant à chaque type d’erreur.
Les erreurs seront accompagnées d’un corps de réponse contenant un objet d’erreur. Dans ce cas, le corps de la réponse contient un détail de problème, tel que défini par RFC 7807 - Détails du problème pour les API HTTP.
Le type de contenu renvoyé est application/problem+json
type de média. Lorsqu’elle est présente, cette réponse contient des détails lisibles par l’ordinateur concernant l’erreur. Les détails du problème incluent un type d’URI.
Tous les objets d’erreur ont une type
, status
, title
, detail
et report
des propriétés du message, de sorte que le client de l’API puisse déterminer le problème.
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"
}
}
Erreurs non fatales non-fatal-errors
Les erreurs non fatales peuvent être ventilées par :
- Erreurs : problèmes qui se sont produits lors du traitement de la requête, mais qui n’ont pas entraîné le rejet de l’ensemble de la requête (par exemple, un échec en amont non critique).
- Avertissements : messages provenant de services en amont qui peuvent signaler un traitement partiel de la demande.
En cas d’erreurs non fatales (à l’exclusion des avertissements), la variable Server API change l’état de la réponse en 207 Multi-Status
.
Les avertissements, en revanche, sont essentiellement informatifs, car ils représentent généralement une condition potentiellement transitoire, qui n’a pas eu d’incidence totale sur la demande. Voici un exemple de profil partiel lu dans le moteur de segmentation, auquel cas la précision est affectée dans une certaine mesure, mais la fonctionnalité est toujours fournie.
Les erreurs non fatales sont représentées dans la variable Détails du problème mais sont directement incorporés dans la réponse standard de la passerelle Edge, de type 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
}
}
}
]
}
Gestion 4xx
et 5xx
Réponses
4xx Bad Request
4xx
Les erreurs, telles que 400, 403, 404, ne doivent pas être retentées pour le compte du client, sauf pour 429
. Il s’agit d’erreurs du client qui échoueront. Le client doit corriger l’erreur avant de retenter la requête.429 Too Many Requests
429
Le code de réponse HTTP indique que Adobe Experience Platform Edge Network ou un service en amont limite le débit des requêtes. Dans ce cas, l’appelant doit respecter la variable Retry-After
en-tête de la réponse. Toutes les réponses renvoyées doivent comporter le code de réponse HTTP avec un code d’erreur spécifique au domaine.500 Internal Server Error
500
sont des erreurs génériques « fourre-tout ». 500
Les erreurs ne doivent pas être retentées, à l’exception de 502
et 503
. Les intermédiaires doivent répondre avec une 500
et peut répondre avec un code/message d’erreur générique, ou un code/message d’erreur spécifique au domaine.502 Bad Gateway
502
les erreurs peuvent réessayer la requête après un certain temps.503 Service Unavailable
503
Les erreurs peuvent réessayer la requête, mais doivent respecter la variable Retry-After
en-tête .504 Gateway Timeout