Gestione degli errori
Panoramica overview
Gli errori API nell’API Adobe Experience Platform Edge Network Server possono avere diverse cause, interne (Edge Network stesso) o esterne (correlate all’input, alla configurazione o a monte).
Tipi di errore error-types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
Gravità
Gli errori API server possono essere suddivisi anche in base alla gravità:
- Errori irreversibili causeranno l'arresto della pipeline di invio.
- Errori non irreversibili potrebbero segnalare un'elaborazione parziale, consentendo al contempo la continuazione dell'elaborazione delle richieste.
- Se presente, il codice di stato complessivo della richiesta verrà modificato in
207 Multi-Status
.
- Se presente, il codice di stato complessivo della richiesta verrà modificato in
RequestProcessingError
InputError
ConfigurationError
UpstreamError
Errori irreversibili fatal-errors
Errori irreversibili interrompono l’elaborazione della richiesta e causano la restituzione di uno stato di risposta non 2xx. Consulta la sezione tipi di errore per visualizzare il codice di stato previsto, corrispondente a ciascun tipo di errore.
Gli errori saranno accompagnati da un corpo della risposta contenente un oggetto di errore. In questo caso, il corpo della risposta contiene un dettaglio del problema, come definito da RFC 7807 Problem Details for HTTP APIs.
Il tipo di contenuto restituito è il tipo di supporto application/problem+json
. Se presente, questa risposta contiene dettagli leggibili dal computer relativi all’errore. I dettagli del problema includono un tipo URI.
Tutti gli oggetti errore hanno proprietà di messaggio type
, status
, title
, detail
e report
in modo che il client API possa individuare il 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"
}
}
Errori non irreversibili non-fatal-errors
Gli errori non irreversibili possono essere ulteriormente suddivisi in:
- Errori: problemi che si sono verificati durante l’elaborazione della richiesta, ma che non hanno causato il rifiuto dell’intera richiesta (ad esempio un errore upstream non critico).
- Avvisi: messaggi provenienti dai servizi upstream che potrebbero segnalare che si è verificata un’elaborazione parziale della richiesta.
Quando si verificano errori non irreversibili (esclusi gli avvisi), Server API cambierà lo stato della risposta in 207 Multi-Status
.
Le avvertenze, d’altro canto, sono per lo più informative, in quanto in genere rappresentano una condizione potenzialmente transitoria che non ha avuto un impatto completo sulla richiesta. Un esempio di questo è un profilo parziale letto nel motore di segmentazione, nel qual caso la precisione è influenzata in qualche misura, ma la funzionalità è ancora disponibile.
Gli errori non irreversibili sono rappresentati nel formato Dettagli problema, ma sono incorporati direttamente nella risposta standard del gateway Edge, che è di 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
}
}
}
]
}
Gestione di 4xx
e 5xx
risposte
4xx Bad Request
4xx
, come 400, 403, 404, non deve essere ritentata per conto del client, ad eccezione di 429
. Si tratta di errori client che non verranno eseguiti correttamente. Il client deve risolvere l’errore prima di ritentare la richiesta.429 Too Many Requests
429
il codice di risposta HTTP indica che l'Edge Network di Adobe Experience Platform o un servizio a monte limita la frequenza delle richieste. In questo caso, il chiamante deve rispettare l'intestazione di risposta Retry-After
in uno scenario simile. Tutte le risposte che tornano devono contenere il codice di risposta HTTP con un codice di errore specifico del dominio.500 Internal Server Error
500
errori sono generici e includono tutti gli errori. 500
errori non devono essere ritentati, tranne 502
e 503
. Gli intermediari devono rispondere con un errore 500
e possono rispondere con un codice/messaggio di errore generico o con un codice/messaggio di errore più specifico del dominio.502 Bad Gateway
502
errori potrebbero riprovare la richiesta dopo un certo periodo di tempo.503 Service Unavailable
503
errori possono ritentare la richiesta, ma devono rispettare l'intestazione Retry-After
.504 Gateway Timeout