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:
- Fatale fouten zal de verzendingsleiding stopzetten.
- Niet-fatale fouten zou een gedeeltelijke verwerking kunnen signaleren, terwijl het toestaan voor verzoekverwerking om verder te gaan.
- 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. Kijk uit de fouttypen sectie 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 de responsinstantie een probleemdetail, zoals gedefinieerd door RFC 7807 — Probleemdetails voor HTTP API's.
Het geretourneerde inhoudstype is het application/problem+json
mediatype. 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 type
, status
, title
, detail
en report
berichteigenschappen 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) Server API wijzigt 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.
Niet-fatale fouten worden weergegeven in het dialoogvenster Probleemdetails formaat, maar direct ingebed in de standaardreactie van de gateway van Edge, die van type is 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
}
}
}
]
}
Afhandeling 4xx
en 5xx
Reacties
4xx Bad Request
4xx
fouten, zoals 400, 403, 404, niet opnieuw mogen worden geprobeerd namens de cliënt, behalve 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 Retry-After
responsheader. 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
. Intermediairs moeten reageren met een 500
fout en kan met een generische foutencode/een bericht, of een meer domein-specifieke foutencode/een bericht antwoorden.502 Bad Gateway
502
De fouten kunnen het verzoek na wat tijd opnieuw proberen.503 Service Unavailable
503
fouten kunnen het verzoek opnieuw proberen, maar moeten de Retry-After
header.504 Gateway Timeout