Foutafhandeling
Overzicht overview
API-fouten in de Adobe Experience Platform Edge Network Server-API kunnen verschillende oorzaken hebben: intern (Edge Network zelf) of extern (invoer, configuratie of upstream gerelateerd).
Fouttypen error-types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
Ernst
Server-API-fouten kunnen ook worden gesplitst op ernst:
- de Fatale fouten zullen de verzendingspijplijn tegenhouden.
- de niet-fatale fouten konden een gedeeltelijke verwerking, terwijl het toestaan voor verzoekverwerking om verder te gaan signaleren.
- Indien aanwezig wordt de algemene statuscode van het verzoek gewijzigd in
207 Multi-Status
.
- Indien aanwezig wordt de algemene statuscode van het verzoek gewijzigd in
RequestProcessingError
InputError
ConfigurationError
UpstreamError
Fatale fouten fatal-errors
Fatale fouten stoppen de verzoekverwerking en veroorzaken dat een non-2xx reactiestatus wordt teruggekeerd. Controle uit de foutentypessectie om de verwachte statuscode te zien, die aan elk foutentype beantwoordt.
Fouten gaan vergezeld van een antwoordinstantie die een foutobject bevat. In dit geval, bevat het reactielichaam een probleemdetail, zoals bepaald door RFC 7807 Details van het Probleem voor HTTP APIs.
Het geretourneerde inhoudstype is het mediatype application/problem+json
. Indien aanwezig bevat dit antwoord machineleesbare details met betrekking tot de fout. De details van het probleem omvatten een type van URI.
Alle foutobjecten hebben een berichteigenschap type
, status
, title
, detail
en report
, zodat de API-client kan zien wat het probleem is.
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"
}
}
Niet-fatale fouten non-fatal-errors
Niet-fatale fouten kunnen verder worden onderverdeeld in:
- Fouten: problemen die zich tijdens de behandeling van het verzoek hebben voorgedaan, maar niet tot afwijzing van het volledige verzoek hebben geleid (bijvoorbeeld een niet-kritieke stroomopwaartse fout).
- Waarschuwingen: berichten van upstream-services die zouden kunnen aangeven dat een gedeeltelijke verwerking van het verzoek heeft plaatsgevonden.
Bij niet-fatale fouten (behalve waarschuwingen) wijzigt Server API de status van de reactie in 207 Multi-Status
.
Waarschuwingen daarentegen zijn meestal informatief, aangezien ze over het algemeen een potentieel voorbijgaande voorwaarde vormen, die het verzoek niet volledig heeft beïnvloed. Een voorbeeld hiervan is een gedeeltelijk profiel dat in de segmenteringsengine wordt gelezen. In dat geval wordt de nauwkeurigheid enigszins beïnvloed, maar de functionaliteit wordt nog steeds geleverd.
De niet fatale fouten worden vertegenwoordigd in het formaat van de Details van het Probleem, maar zijn direct ingebed in de standaardreactie van de gateway van Edge, die van type application/json
is.
{
"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
}
}
}
]
}
4xx
- en 5xx
reacties verwerken
4xx Bad Request
4xx
fouten, zoals 400, 403 en 404, mogen niet opnieuw worden geprobeerd namens de client, behalve voor 429
. Dit zijn clientfouten die niet worden opgelost. De client moet de fout verhelpen voordat u de aanvraag opnieuw probeert.429 Too Many Requests
429
HTTP-antwoordcode geeft aan dat de Adobe Experience Platform-Edge Network of een upstream-service een snelheidsbeperking voor de aanvragen is. In dat geval moet de aanroeper in een dergelijk scenario de antwoordheader Retry-After
respecteren. Alle reacties die teruglopen, moeten de HTTP-antwoordcode bevatten met een domeinspecifieke foutcode.500 Internal Server Error
500
-fouten zijn algemene, 'catch-all'-fouten. 500
fouten mogen niet opnieuw worden geprobeerd, behalve voor 502
en 503
. De intermediairs moeten met een 500
fout antwoorden en kunnen met een generische foutencode/een bericht, of een meer domein-specifieke foutencode/bericht antwoorden.502 Bad Gateway
502
-fouten kunnen het verzoek na verloop van tijd opnieuw proberen.503 Service Unavailable
503
fouten kunnen de aanvraag opnieuw proberen, maar moeten de header van Retry-After
respecteren.504 Gateway Timeout