Schema Registry API를 사용하여 스키마 만들기
Schema Registry은(는) Adobe Experience Platform 내에서 Schema Library에 액세스하는 데 사용됩니다. Schema Library에는 응용 프로그램을 사용하는 Adobe, Experience Platform개의 파트너 및 공급업체에서 사용할 수 있는 리소스가 포함되어 있습니다. 레지스트리는 사용 가능한 모든 라이브러리 리소스에 액세스할 수 있는 사용자 인터페이스와 RESTful API를 제공합니다.
이 자습서에서는 Schema Registry API를 사용하여 표준 클래스를 사용하여 스키마를 구성하는 단계를 안내합니다. Experience Platform에서 사용자 인터페이스를 사용하려면 스키마 편집기 자습서에서 스키마 편집기에서 유사한 작업을 수행하는 방법에 대한 단계별 지침을 제공합니다.
시작하기
이 안내서를 사용하려면 Adobe Experience Platform의 다음 구성 요소에 대해 이해하고 있어야 합니다.
- Experience Data Model (XDM) System: Experience Platform에서 고객 경험 데이터를 구성하는 표준화된 프레임워크입니다.
- 스키마 컴포지션의 기본 사항: 스키마 컴포지션의 주요 원칙 및 모범 사례를 포함하여 XDM 스키마의 기본 구성 요소에 대해 알아봅니다.
- Real-Time Customer Profile: 여러 원본의 집계된 데이터를 기반으로 통합된 실시간 소비자 프로필을 제공합니다.
- Sandboxes: Experience Platform은(는) 디지털 경험 응용 프로그램을 개발하고 발전시키는 데 도움이 되는 단일 Platform 인스턴스를 별도의 가상 환경으로 분할하는 가상 샌드박스를 제공합니다.
이 자습서를 시작하기 전에 개발자 안내서에서 Schema Registry API를 성공적으로 호출하기 위해 알아야 할 중요한 정보를 검토하십시오. 여기에는 {TENANT_ID}
, "컨테이너" 개념 및 요청을 하는 데 필요한 헤더가 포함됩니다(Accept
헤더 및 가능한 값에 특별한 주의를 기울임).
이 자습서에서는 소매 충성도 프로그램의 멤버와 관련된 데이터를 설명하는 충성도 멤버 스키마를 구성하는 단계를 안내합니다. 시작하기 전에 부록에서 충성도 멤버 완료 스키마를 미리 볼 수 있습니다.
표준 클래스를 사용하여 스키마 구성
스키마는 Experience Platform에 수집할 데이터에 대한 블루프린트로 간주할 수 있습니다. 각 스키마는 클래스와 0개 이상의 스키마 필드 그룹으로 구성됩니다. 즉, 스키마를 정의하기 위해 필드 그룹을 추가할 필요는 없지만 대부분의 경우 하나 이상의 필드 그룹이 사용됩니다.
클래스 할당
스키마 작성 프로세스는 클래스 선택부터 시작됩니다. 클래스는 데이터의 주요 동작 측면(레코드 및 시계열)과 수집할 데이터를 설명하는 데 필요한 최소 필드를 정의합니다.
이 자습서에서 만드는 스키마는 XDM Individual Profile 클래스를 사용합니다. XDM Individual Profile은(는) 레코드 동작을 정의하기 위해 Adobe에서 제공하는 표준 클래스입니다. 동작에 대한 자세한 내용은 스키마 컴포지션의 기본 사항에서 확인할 수 있습니다.
클래스를 할당하려면 테넌트 컨테이너에서 새 스키마를 만들기(POST)하기 위한 API 호출이 수행됩니다. 이 호출에는 스키마가 구현할 클래스가 포함됩니다. 각 스키마는 하나의 클래스만 구현할 수 있습니다.
API 형식
POST /tenant/schemas
요청
요청의 $id
을(를) 참조하는 allOf
특성이 포함되어 있어야 합니다. 이 속성은 스키마가 구현할 "기본 클래스"를 정의합니다. 이 예제에서 기본 클래스는 XDM Individual Profile 클래스입니다. XDM Individual Profile 클래스의 $id
이(가) 아래 allOf
배열의 $ref
필드 값으로 사용됩니다.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"type": "object",
"title": "Loyalty Members",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile"
}
]
}'
응답
성공적인 요청은 $id
, meta:altIt
및 version
을(를) 포함하여 새로 만든 스키마의 세부 정보가 포함된 응답 본문과 함께 HTTP 응답 상태 201(생성됨)을 반환합니다. 이 값은 읽기 전용이며 Schema Registry에 의해 할당됩니다.
{
"$id": "https://ns.adobe.com/tenantId/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_tenantId.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.0",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673310304048,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "6d2ed8acd9c3b768a44de29e069fc6f71329d2550f708381d22fa8bf8c192366",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_tenantId"
}
스키마 조회
새로 만든 스키마를 보려면 스키마에 대해 meta:altId
또는 URL 인코딩 $id
URI를 사용하여 조회(GET) 요청을 수행하십시오.
API 형식
GET /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
또는 URL로 인코딩된 $id
입니다.요청
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/https%3A%2F%2Fns.adobe.com%2F{TENANT_ID}%2Fschemas%2F533ca5da28087c44344810891b0f03d9\
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/vnd.adobe.xed+json; version=1'
응답
응답 형식은 요청과 함께 전송된 Accept
헤더에 따라 다릅니다. 필요에 가장 적합한 헤더를 확인하려면 다른 Accept
헤더로 테스트해 보십시오.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.0",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
}
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673310304048,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "6d2ed8acd9c3b768a44de29e069fc6f71329d2550f708381d22fa8bf8c192366",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:allFieldAccess": true
}
필드 그룹 추가 add-a-field-group
이제 충성도 멤버 스키마를 만들고 확인했으므로 필드 그룹을 추가할 수 있습니다.
선택한 스키마 클래스에 따라 사용할 수 있는 다양한 표준 필드 그룹이 있습니다. 각 필드 그룹에는 해당 필드 그룹과 호환되는 클래스를 정의하는 intendedToExtend
필드가 포함되어 있습니다.
필드 그룹은 "이름" 또는 "주소"와 같이 동일한 정보를 캡처해야 하는 모든 스키마에서 재사용할 수 있는 개념을 정의합니다.
API 형식
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
또는 URL로 인코딩된 $id
입니다.요청
이 요청은 인구 통계 세부 정보 필드 그룹(profile-person-details
) 내의 필드를 포함하도록 충성도 멤버 스키마를 업데이트합니다.
profile-person-details
필드 그룹을 추가하면 이제 충성도 멤버 스키마가 이름, 성, 생일 등 충성도 프로그램 멤버의 인구 통계학적 정보를 캡처합니다.
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/xdm/context/profile-person-details"}}
]'
응답
응답이 meta:extends
배열에 새로 추가된 필드 그룹을 표시하며 allOf
특성의 필드 그룹에 대한 $ref
을(를) 포함합니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.1",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/context/profile"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673310912096,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "b480f28a35f356b237fc129e796074a3f33a7a67df273f6a8beaee1ec6465540",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
더 많은 필드 그룹 추가
충성도 멤버 스키마에는 다른 필드 그룹을 사용하여 단계를 반복하여 추가할 수 있는 두 개의 표준 필드 그룹이 더 필요합니다.
$id
이(가) 사용됩니다.code language-http |
---|
|
API 형식
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
또는 URL 인코딩 $id
입니다.요청
이 요청은 다음 표준 필드 그룹 내에 필드를 포함하도록 충성도 멤버 스키마를 업데이트합니다.
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details"}},
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details"}}
]'
응답
응답은 meta:extends
배열에서 새로 추가된 필드 그룹을 표시하며 allOf
특성의 필드 그룹에 대한 $ref
을(를) 포함합니다.
충성도 멤버 스키마에는 이제 아래와 같이 allOf
배열에 profile
, profile-person-details
, profile-personal-details
및 profile-loyalty-details
, 이렇게 네 개의 $ref
값이 있어야 합니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.2",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/context/profile"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673311559934,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "1de5ed1a07e3478719952f0a8c94d5e5390d5a9a998761adb4cf1989137fd6ea",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
새 필드 그룹 정의
표준 충성도 세부 정보 필드 그룹은 스키마에 유용한 충성도 관련 필드를 제공하지만, 표준 필드 그룹에 포함되지 않는 추가 충성도 필드가 있습니다.
이러한 필드를 추가하려면 tenant
컨테이너 내에 사용자 지정 필드 그룹을 정의할 수 있습니다. 이러한 필드 그룹은 조직에 고유하며 조직 외부의 다른 사용자가 표시하거나 편집할 수 없습니다.
새 필드 그룹을 만들기(POST)하려면 필드 그룹과 호환되는 기본 클래스에 대한 $id
이(가) 포함된 meta:intendedToExtend
필드와 필드 그룹에 포함될 속성을 요청에 포함해야 합니다.
다른 필드 그룹 또는 필드와의 충돌을 방지하려면 TENANT_ID
아래에 사용자 지정 속성을 중첩해야 합니다.
API 형식
POST /tenant/fieldgroups
요청
이 요청은 회사 특정 충성도 프로그램에 해당하는 4개의 필드(id
, effectiveDate
, currentThreshold
및 nextThreshold
)가 포함된 loyaltyTier
개체가 있는 새 필드 그룹을 만듭니다.
curl -X POST\
https://platform.adobe.io/data/foundation/schemaregistry/tenant/fieldgroups\
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'content-type: application/json' \
-d '{
"type": "object",
"title": "Loyalty Tier",
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier."
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier."
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier."
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier."
}
}
}
}
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier"
}
]
}'
응답
성공적인 요청은 $id
, meta:altIt
및 version
을(를) 포함하여 새로 생성된 필드 그룹의 세부 정보가 포함된 응답 본문과 함께 HTTP 응답 상태 201(생성됨)을 반환합니다. 이 값은 읽기 전용이며 Schema Registry에 의해 할당됩니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:altId": "_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:resourceType": "mixins",
"version": "1.0",
"title": "Loyalty Tier",
"type": "object",
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:xdmType": "object"
}
},
"meta:xdmType": "object"
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673313004645,
"repo:lastModifiedDate": 1673313004645,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "98e5d48808f5a4d9655493777389568a2581cfce013351ab9e1595d82f698dd6",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}"
}
스키마에 사용자 정의 필드 그룹 추가
이제 동일한 단계에 따라 표준 필드 그룹을 추가하여 새로 만든 이 필드 그룹을 스키마에 추가할 수 있습니다.
API 형식
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
또는 URL 인코딩 $id
.요청
이 요청은 새로운 "충성도 계층" 필드 그룹 내에 필드를 포함하도록 충성도 멤버 스키마를 업데이트(PATCH)합니다.
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"}}
]'
응답
이제 응답에 meta:extends
배열에 새로 추가된 필드 그룹이 표시되고 allOf
특성의 필드 그룹에 대한 $ref
이(가) 포함되어 있으므로 필드 그룹이 성공적으로 추가되었음을 확인할 수 있습니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.3",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673313118938,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "6559b197a04bb3fda5bc80bf383a260cfbe32539d528f0139c5750711eebfba2",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
현재 스키마 보기
이제 GET 요청을 수행하여 현재 스키마를 보고 추가된 필드 그룹이 스키마의 전체 구조에 어떻게 기여했는지 확인할 수 있습니다.
API 형식
GET /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
또는 URL 인코딩 $id
.요청
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/vnd.adobe.xed-full+json; version=1'
응답
application/vnd.adobe.xed-full+json; version=1
Accept
헤더를 사용하면 모든 속성을 표시하는 전체 스키마를 볼 수 있습니다. 이러한 속성은 스키마를 구성하는 데 사용된 클래스 및 필드 그룹이 제공한 필드입니다. 아래 예제 응답에서는 공간에 대해 최근에 추가한 필드만 표시됩니다. 이 문서의 끝에 있는 부록에서 모든 속성과 해당 특성을 포함한 전체 스키마를 볼 수 있습니다.
"properties"
에서 사용자 지정 필드 그룹을 추가할 때 만들어진 _{TENANT_ID}
네임스페이스를 볼 수 있습니다. 해당 네임스페이스 안에는 필드 그룹을 만들 때 정의된 loyaltyTier
개체와 필드가 있습니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:altId": "_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:resourceType": "mixins",
"version": "1.0",
"title": "Loyalty Tier",
"type": "object",
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:xdmType": "object"
}
},
"meta:xdmType": "object"
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673313004645,
"repo:lastModifiedDate": 1673313004645,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "98e5d48808f5a4d9655493777389568a2581cfce013351ab9e1595d82f698dd6",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}"
}
데이터 유형 만들기
생성한 충성도 계층 필드 그룹에는 다른 스키마에서 유용할 수 있는 특정 속성이 포함되어 있습니다. 예를 들어, 데이터는 경험 이벤트의 일부로 수집되거나 다른 클래스를 구현하는 스키마에서 사용될 수 있습니다. 이 경우 다른 곳에서 정의를 더 쉽게 재사용할 수 있도록 객체 계층을 데이터 유형으로 저장하는 것이 적절합니다.
데이터 유형을 사용하면 객체 계층을 한 번 정의할 수 있으며 다른 스칼라 유형과 마찬가지로 필드에서 참조할 수 있습니다.
즉, 데이터 형식을 사용하면 필드의 "형식"으로 추가하여 스키마의 모든 위치에 포함할 수 있으므로 필드 그룹보다 더 유연하고 여러 필드 구조를 일관되게 사용할 수 있습니다.
API 형식
POST /tenant/datatypes
요청
데이터 형식을 정의하면 meta:extends
또는 meta:intendedToExtend
필드가 필요하지 않으며 충돌을 방지하기 위해 테넌트 ID 아래에 필드를 중첩할 필요가 없습니다.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/datatypes \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"title": "Loyalty Tier",
"type": "object",
"description": "Loyalty Tier data type",
"definitions": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier."
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier."
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier."
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier."
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier"
}
]
}'
응답
성공적인 요청은 $id
, meta:altIt
및 version
을(를) 포함하여 새로 만든 데이터 형식의 세부 정보가 포함된 응답 본문과 함께 HTTP 응답 상태 201(생성됨)을 반환합니다. 이 값은 읽기 전용이며 Schema Registry에 의해 할당됩니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"meta:altId": "_{TENANT_ID}.datatypes.c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"meta:resourceType": "datatypes",
"version": "1.0",
"title": "Loyalty Tier",
"type": "object",
"description": "Loyalty Tier data type",
"definitions": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:xdmType": "object"
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673378256699,
"repo:lastModifiedDate": 1673378256699,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "8afba84c0c9a68126a7a1389f8523a1112bdf4405badc6dcddbbb4a0e18f5cdb",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}"
}
URL로 인코딩된 $id
URI를 사용하여 조회(GET) 요청을 수행하여 새 데이터 형식을 직접 볼 수 있습니다. 조회 요청을 위해 Accept
헤더에 version
을(를) 포함해야 합니다.
스키마에서 데이터 유형 사용
충성도 계층 데이터 형식이 만들어졌으므로 이전에 있었던 필드 대신 데이터 형식을 참조하기 위해 만든 필드 그룹의 loyaltyTier
필드를 업데이트(PATCH)할 수 있습니다.
API 형식
PATCH /tenant/fieldgroups/{FIELD_GROUP_ID}
{FIELD_GROUP_ID}
meta:altId
또는 URL 인코딩 $id
입니다.요청
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/fieldgroups/_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{
"op": "replace",
"path": "/definitions/loyaltyTier/properties/_{TENANT_ID}/properties",
"value": {
"loyaltyTier": {
"title": "Loyalty Tier",
"$ref": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"description": "Loyalty tier info"
}
}
}
]'
응답
이제 응답에는 이전에 정의된 필드 대신 loyaltyTier
개체의 데이터 형식에 대한 참조($ref
)가 포함됩니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:altId": "_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:resourceType": "mixins",
"version": "1.1",
"title": "Loyalty Tier",
"type": "object",
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"title": "Loyalty Tier",
"$ref": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"description": "Loyalty tier info",
"type": "object",
"meta:xdmType": "object"
}
},
"meta:xdmType": "object"
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673313004645,
"repo:lastModifiedDate": 1673378970276,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "4df8fa56d00991590364606bb2e219e1ea8f5717a51c0e6ae57ca956830b6a27",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
지금 스키마를 조회하기 위해 GET 요청을 수행하는 경우 loyaltyTier
속성에 meta:referencedFrom
아래의 데이터 형식에 대한 참조가 표시됩니다.
"_{TENANT_ID}": {
"type": "object",
"meta:xdmType": "object",
"properties": {
"loyaltyTier": {
"title": "Loyalty Tier",
"description": "Loyalty tier info",
"type": "object",
"meta:xdmType": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:referencedFrom": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb"
}
}
}
ID 설명자 정의
스키마는 데이터를 Experience Platform (으)로 수집하는 데 사용됩니다. 이 데이터는 궁극적으로 여러 서비스에 걸쳐 사용되어 개인에 대한 통합된 단일 보기를 만듭니다. 이 프로세스를 지원하기 위해 주요 필드를 "ID"로 표시할 수 있으며 데이터 수집 시 해당 필드의 데이터가 해당 개인의 "ID 그래프"에 삽입됩니다. 그런 다음 Real-Time Customer Profile 및 기타 Experience Platform 서비스에서 그래프 데이터에 액세스하여 각 개별 고객에 대한 결합된 보기를 제공할 수 있습니다.
일반적으로 "ID"로 표시되는 필드에는 전자 메일 주소, 전화 번호, Experience Cloud ID (ECID), CRM ID 또는 기타 고유 ID 필드가 포함됩니다. 좋은 ID 필드일 수도 있으므로 조직 고유의 식별자를 고려하십시오.
ID 설명자는 sourceSchema
의 sourceProperty
이(가) ID로 간주해야 하는 고유 식별자라는 신호를 보냅니다.
설명자 작업에 대한 자세한 내용은 스키마 레지스트리 개발자 안내서를 참조하십시오.
API 형식
POST /tenant/descriptors
요청
다음 요청은 충성도 멤버 스키마의 personalEmail.address
필드에 ID 설명자를 정의합니다. 이를 통해 Experience Platform이(가) 충성도 멤버의 이메일 주소를 식별자에 사용하여 개인에 대한 정보를 결합하는 데 도움을 줄 수 있습니다. 또한 이 호출은 xdm:isPrimary
을(를) true
(으)로 설정하여 이 필드를 스키마의 기본 ID로 설정합니다. 이는 실시간 고객 프로필에서 사용할 스키마를 활성화하기 위한 요구 사항입니다.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"@type": "xdm:descriptorIdentity",
"xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/533ca5da28087c44344810891b0f03d9",
"xdm:sourceVersion": 1,
"xdm:sourceProperty": "/_{TENANT_ID}/loyalty/loyaltyId",
"xdm:namespace": "Email",
"xdm:property": "xdm:code",
"xdm:isPrimary": false
}'
응답
성공한 응답은 @id
을(를) 포함하여 새로 생성된 설명자의 세부 정보가 포함된 응답 본문과 함께 HTTP 상태 201(생성됨)을 반환합니다. @id
은(는) Schema Registry에서 지정한 읽기 전용 필드이며 API의 설명자를 참조하는 데 사용됩니다.
{
"@id": "719a4391897c097786efbaa6d4262bb928a1cd88540344c6",
"@type": "xdm:descriptorIdentity",
"xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"xdm:sourceVersion": 1,
"xdm:sourceProperty": "/personalEmail/address",
"imsOrg": "{ORG_ID}",
"version": "1",
"xdm:namespace": "Email",
"xdm:property": "xdm:code",
"xdm:isPrimary": true,
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production"
}
Real-Time Customer Profile에서 사용할 스키마 활성화 profile
스키마에 기본 ID 설명자가 적용되면 meta:immutableTags
특성에 union
태그를 추가하여 Real-Time Customer Profile에서 사용할 충성도 멤버 스키마를 활성화할 수 있습니다.
union
태그 추가
병합된 유니온 보기에 스키마를 포함하려면 union
태그를 스키마의 meta:immutableTags
특성에 추가해야 합니다. 이 작업은 스키마를 업데이트하고 값이 union
인 meta:immutableTags
배열을 추가하라는 PATCH 요청을 통해 수행됩니다.
API 형식
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
또는 URL로 인코딩된 $id
입니다.요청
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/meta:immutableTags", "value": ["union"]}
]'
응답
응답이 작업을 성공적으로 수행했으며 스키마에 이제 "union" 값을 포함하는 배열인 최상위 특성 meta:immutableTags
이(가) 포함되어 있음을 보여 줍니다.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.4",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673380280074,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "c590ccc7a293040d85c2b7d93276480ef4b4aa9a4fcd6991f50fbb47f58bced2",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:immutableTags": [
"union"
],
"meta:descriptorStatus": {
"result": []
}
}
유니온에 스키마 나열
이제 스키마를 XDM Individual Profile 유니온에 추가했습니다. 동일한 유니온에 속하는 모든 스키마 목록을 보려면 쿼리 매개 변수를 사용하여 GET 요청을 수행하여 응답을 필터링할 수 있습니다.
property
쿼리 매개 변수를 사용하여 XDM Individual Profile 클래스의 $id
과(와) 동일한 meta:class
을(를) 갖는 meta:immutableTags
필드가 포함된 스키마만 반환되도록 지정할 수 있습니다.
API 형식
GET /tenant/schemas?property=meta:immutableTags==union&property=meta:class=={CLASS_ID}
요청
아래 예제 요청은 XDM Individual Profile 유니온의 일부인 모든 스키마를 반환합니다.
curl -X GET \
'https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas?property=meta:immutableTags==union&property=meta:class==https://ns.adobe.com/xdm/context/profile' \
-H 'Accept: application/vnd.adobe.xed-id+json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
응답
응답은 두 요구 사항을 모두 충족하는 스키마만 포함하는 필터링된 스키마 목록입니다. 여러 쿼리 매개 변수를 사용할 때는 AND 관계가 가정된다는 점을 기억하십시오. 목록 응답의 형식은 요청에서 보낸 Accept
헤더에 따라 다릅니다.
{
"results": [
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d29a200b5deb6cfb55d3b865ef627f33",
"meta:altId": "_{TENANT_ID}.schemas.d29a200b5deb6cfb55d3b865ef627f33",
"version": "1.2",
"title": "Profile Schema"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/5d70026f5522fc60b3c81f6523b83c86",
"meta:altId": "_{TENANT_ID}.schemas.5d70026f5522fc60b3c81f6523b83c86",
"version": "1.3",
"title": "CRM Onboarding"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/653e53eb04341d09453c9b6a5fb43d1b4ca9526ec274856d",
"meta:altId": "_{TENANT_ID}.schemas.653e53eb04341d09453c9b6a5fb43d1b4ca9526ec274856d",
"version": "1.1",
"title": "Profile consents"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"version": "1.4",
"title": "Loyalty Members"
}
],
"_page": {
"orderby": "updated",
"next": null,
"count": 4
},
"_links": {
"next": null,
"global_schemas": {
"href": "https://platform.adobe.io/data/foundation/schemaregistry/global/schemas?property=meta:immutableTags==union&property=meta:class==https://ns.adobe.com/xdm/context/profile"
}
}
}
다음 단계
이 자습서에 따라 표준 필드 그룹과 정의한 필드 그룹을 모두 사용하여 스키마를 성공적으로 구성했습니다. 이제 이 스키마를 사용하여 데이터 세트를 만들고 레코드 데이터를 Adobe Experience Platform으로 수집할 수 있습니다.
이 자습서 전체에서 생성된 전체 충성도 멤버 스키마는 다음 부록에서 사용할 수 있습니다. 스키마를 보면 필드 그룹이 전체 구조에 어떻게 기여하고 데이터 수집에 사용할 수 있는 필드를 확인할 수 있습니다.
두 개 이상의 스키마를 만들면 관계 설명자를 사용하여 스키마 간의 관계를 정의할 수 있습니다. 자세한 내용은 두 스키마 간의 관계 정의에 대한 자습서를 참조하십시오. 레지스트리에서 모든 작업(GET, POST, PUT, PATCH 및 DELETE)을 수행하는 방법에 대한 자세한 예는 API를 사용하는 동안 스키마 레지스트리 개발자 안내서를 참조하십시오.
부록 appendix
다음 정보는 API 자습서를 보완합니다.
전체 충성도 멤버 스키마 complete-schema
이 자습서 전체에서 스키마는 소매 로열티 프로그램의 구성원을 설명하도록 구성됩니다.
스키마는 XDM Individual Profile 클래스를 구현하고 여러 필드 그룹을 결합합니다. 표준 Demographic Details, 개인 연락처 세부 정보 및 충성도 세부 정보 필드 그룹을 사용하는 충성도 멤버에 대한 정보를 캡처할 뿐만 아니라 자습서 중에 정의된 사용자 지정 충성도 계층 필드 그룹을 통해서도 캡처합니다.
다음은 JSON 형식으로 완료된 충성도 멤버 스키마를 보여 줍니다.
code language-json |
---|
|