오류 처리
개요 overview
Adobe Experience Platform Edge Network 서버 API의 API 오류는 내부(Edge Network 자체) 또는 외부(입력, 구성 또는 업스트림 관련)와 같은 다양한 원인이 있을 수 있습니다.
오류 유형 error-types
RequestProcessingError
500
InputError
4xx
ConfigurationError
422
UpstreamError
207 Multi-Status
심각도
서버 API 오류는 심각도로 분할할 수도 있습니다.
- 치명적인 오류 로 인해 디스패치 파이프라인이 중지됩니다.
- 치명적이지 않은 오류 이(가) 요청 처리를 계속할 수 있도록 허용하는 동안 부분 처리를 알릴 수 있습니다.
- 존재하는 경우 요청의 전체 상태 코드가
207 Multi-Status
(으)로 변경됩니다.
- 존재하는 경우 요청의 전체 상태 코드가
RequestProcessingError
InputError
ConfigurationError
UpstreamError
치명적인 오류 fatal-errors
치명적인 오류로 인해 요청 처리가 중지되고 2xx 이외의 응답 상태가 반환됩니다. 각 오류 유형에 해당하는 예상 상태 코드를 보려면 오류 유형 섹션을 확인하십시오.
오류에는 오류 개체가 포함된 응답 본문이 함께 표시됩니다. 이 경우 응답 본문에 RFC 7807 HTTP API에 대한 문제 세부 정보에서 정의한 문제 세부 정보가 포함됩니다.
반환된 콘텐츠 형식은 application/problem+json
미디어 형식입니다. 존재하는 경우 이 응답에는 오류와 관련하여 기계가 읽을 수 있는 세부 정보가 포함됩니다. 문제 세부 정보에 URI 유형이 포함됩니다.
API 클라이언트가 문제가 무엇인지 알 수 있도록 모든 오류 개체에는 type
, status
, title
, detail
및 report
메시지 속성이 있습니다.
type
https://ns.adobe.com/aep/errors/<ERROR-CODE>
형식에 따라 문제 유형을 식별하는 URI 참조(RFC3986)입니다.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"
}
}
치명적이지 않은 오류 non-fatal-errors
치명적이지 않은 오류는 다음으로 분류될 수 있습니다.
- 오류: 요청을 처리하는 동안 발생했지만 전체 요청이 거부되지 않은 문제(예: 중요하지 않은 업스트림 실패).
- 경고: 요청의 일부 처리가 발생했음을 알릴 수 있는 업스트림 서비스의 메시지.
치명적이지 않은 오류(경고 제외)가 발생하면 Server API에서 응답 상태를 207 Multi-Status
(으)로 변경합니다.
반면 경고는 일반적으로 요청에 완전히 영향을 주지 않는 일시적인 상태를 나타내므로 대부분 정보입니다. 여기 한 가지 예는 세그먼테이션 엔진에서 읽은 부분 프로필이며, 이 경우 정확도는 어느 정도 영향을 받지만 기능은 계속 전달됩니다.
치명적이지 않은 오류는 문제 세부 정보 형식으로 표시되지만 application/json
형식인 Edge 게이트웨이의 표준 응답에 직접 포함됩니다.
{
"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
및 5xx
응답 처리 중
4xx Bad Request
429
을(를) 제외하고 400, 403, 404와 같은 대부분의 4xx
오류는 클라이언트를 대신하여 다시 시도하면 안 됩니다. 이는 클라이언트 오류이며 성공하지 못합니다. 클라이언트는 요청을 다시 시도하기 전에 오류를 해결해야 합니다.429 Too Many Requests
429
HTTP 응답 코드는 Adobe Experience Platform Edge Network 또는 업스트림 서비스가 요청을 제한하고 있음을 나타냅니다. 이 경우 이러한 시나리오에서는 호출자가 Retry-After
응답 헤더를 준수해야 합니다. 뒤로 흐르는 모든 응답은 도메인별 오류 코드와 함께 HTTP 응답 코드를 전달해야 합니다.500 Internal Server Error
500
개의 오류는 일반적이며 모두 오류를 catch합니다. 502
및 503
을(를) 제외하고 500
개의 오류를 다시 시도할 수 없습니다. 중개자는 500
오류로 응답해야 하며 일반 오류 코드/메시지 또는 더 많은 도메인별 오류 코드/메시지로 응답할 수 있습니다.502 Bad Gateway
502
오류를 받는 사람이 잠시 후 요청을 다시 시도할 수 있습니다.503 Service Unavailable
503
오류를 받는 사람이 요청을 다시 시도할 수 있지만 Retry-After
헤더를 준수해야 합니다.504 Gateway Timeout