Création d’une configuration de serveur de destination
- Rubriques :
- Destinations
Créé pour :
- Administration
- Utilisateur ou utilisatrice
La création d’un serveur de destination est la première étape de la création de votre propre destination avec Destination SDK. Le serveur de destination comprend des options de configuration pour les spécifications de serveur et de modèle et pour les options format du message, et formatage de fichier (pour les destinations basées sur des fichiers).
Cette page illustre la requête d’API et la payload que vous pouvez utiliser pour créer votre propre serveur de destination à l’aide du point d’entrée de l’API /authoring/destination-servers
.
Pour obtenir une description détaillée des fonctionnalités configurables avec ce point d’entrée, consultez les articles suivants :
Prise en main des opérations de l’API du serveur de destination
Avant de poursuivre, consultez le guide de prise en main pour obtenir des informations importantes à connaître avant d’effectuer des appels vers l’API, notamment sur la manière d’obtenir l’autorisation de création de la destination et les en-têtes obligatoires.
Création d’une configuration de serveur de destination
Vous pouvez créer une configuration de serveur de destination en effectuant une requête POST
au point d’entrée /authoring/destination-servers
.
platform.adobe.io/data/core/activation/authoring/destination-servers
Format d’API
POST /authoring/destination-servers
Selon le type de destination que vous créez, vous devez configurer un type de serveur de destination légèrement différent.
Créer des serveurs de destination de schéma statique
Les onglets ci-dessous proposent des exemples de serveurs de destination pour les destinations qui utilisent des schémas statiques.
Les exemples de payloads ci-dessous incluent tous les paramètres pris en charge par chaque type de serveur de destination. Il n’est pas nécessaire d’inclure tous les paramètres dans votre requête. La payload peut être personnalisée en fonction de vos besoins.
Sélectionnez chaque onglet ci-dessous pour afficher la requête d’API correspondante.
Création d’un serveur de destination en temps réel (streaming)
Vous devez créer un serveur de destination en temps réel (streaming) similaire à celui illustré ci-dessous quand vous configurez une intégration basée sur l’API (streaming) en temps réel.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Moviestar destination server",
"destinationServerType":"URL_BASED",
"urlBasedDestination":{
"url":{
"templatingStrategy":"PEBBLE_V1",
"value":"https://api.moviestar.com/data/{{customerData.region}}/items"
}
},
"httpTemplate":{
"httpMethod":"POST",
"requestBody":{
"templatingStrategy":"PEBBLE_V1",
"value":"{ \"attributes\": [ {% for ns in [\"external_id\", \"yourdestination_id\"] %} {% if input.profile.identityMap[ns] is not empty and first_namespace_encountered %} , {% endif %} {% set first_namespace_encountered = true %} {% for identity in input.profile.identityMap[ns]%} { \"{{ ns }}\": \"{{ identity.id }}\" {% if input.profile.segmentMembership.ups is not empty %} , \"AEPSegments\": { \"add\": [ {% for segment in input.profile.segmentMembership.ups %} {% if segment.value.status == \"realized\" or segment.value.status == \"existing\" %} {% if added_segment_found %} , {% endif %} {% set added_segment_found = true %} \"{{ destination.segmentAliases[segment.key] }}\" {% endif %} {% endfor %} ], \"remove\": [ {% for segment in input.profile.segmentMembership.ups %} {% if segment.value.status == \"exited\" %} {% if removed_segment_found %} , {% endif %} {% set removed_segment_found = true %} \"{{ destination.segmentAliases[segment.key] }}\" {% endif %} {% endfor %} ] } {% set removed_segment_found = false %} {% set added_segment_found = false %} {% endif %} {% if input.profile.attributes is not empty %} , {% endif %} {% for attribute in input.profile.attributes %} \"{{ attribute.key }}\": {% if attribute.value is empty %} null {% else %} \"{{ attribute.value.value }}\" {% endif %} {% if not loop.last%} , {% endif %} {% endfor %} } {% if not loop.last %} , {% endif %} {% endfor %} {% endfor %} ] }"
},
"contentType":"application/json"
}
}
name
Moviestar destination server
.destinationServerType
URL_BASED
quand les destinations sont diffusées en temps réel (streaming).urlBasedDestination.url.templatingStrategy
Obligatoire.
- Utilisez
PEBBLE_V1
si Adobe doit transformer l’URL dans le champvalue
ci-dessous. Utilisez cette option si vous disposez d’un point d’entrée tel quehttps://api.moviestar.com/data/{{customerData.region}}/items
, où la partieregion
peut différer d’une personne à l’autre. Dans ce cas, vous devez également configurerregion
en tant que champ de données client dans la configuration de destination. - Utilisez
NONE
si aucune transformation n’est nécessaire du côté d’Adobe, par exemple si vous avez un point d’entrée tel que :https://api.moviestar.com/data/items
.
urlBasedDestination.url.value
httpTemplate.httpMethod
GET
, PUT
, POST
, DELETE
ou PATCH
.httpTemplate.requestBody.templatingStrategy
PEBBLE_V1
.httpTemplate.requestBody.value
Obligatoire. Cette chaîne est la version avec caractères d’échappement qui transforme les données des clients Platform au format attendu par votre service.
- Pour plus d’informations sur l’écriture du modèle, lisez la section Utilisation des modèles.
- Pour plus d’informations sur l’échappement des caractères, reportez-vous à la section Norme RFC JSON, section 7.
- Pour obtenir un exemple de transformation simple, consultez la transformation des attributs de profil.
httpTemplate.contentType
application/json
.Création d’un serveur de destination Amazon S3
Vous devez créer un serveur de destination Amazon S3 similaire à celui illustré ci-dessous au moment de la configuration d’une destination Amazon S3 basée sur des fichiers.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name": "S3 destination",
"destinationServerType": "FILE_BASED_S3",
"fileBasedS3Destination": {
"bucket": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.bucket}}"
},
"path": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.path}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_S3
.fileBasedS3Destination.bucket.templatingStrategy
PEBBLE_V1
.fileBasedS3Destination.bucket.value
fileBasedS3Destination.path.templatingStrategy
PEBBLE_V1
.fileBasedS3Destination.path.value
fileConfigurations
Création d’un serveur de destination SFTP
Vous devez créer un serveur de destination SFTP similaire à celui illustré ci-dessous au moment de la configuration d’une destination SFTP basée sur des fichiers.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"File-based SFTP destination server",
"destinationServerType":"FILE_BASED_SFTP",
"fileBasedSFTPDestination":{
"rootDirectory":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.rootDirectory}}"
},
"port": 22,
"encryptionMode" : "PGP"
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_SFTP
.fileBasedSFTPDestination.rootDirectory.templatingStrategy
PEBBLE_V1
.fileBasedSFTPDestination.rootDirectory.value
fileBasedSFTPDestination.hostName.templatingStrategy
PEBBLE_V1
.fileBasedSFTPDestination.hostName.value
port
encryptionMode
Indique s’il faut utiliser le chiffrement de fichier. Valeurs prises en charge :
- PGP
- Aucun
fileConfigurations
Création d’un serveur de destination Azure Data Lake Storage
Vous devez créer un serveur de destination Azure Data Lake Storage similaire à celui illustré ci-dessous au moment de la configuration d’une destination Azure Data Lake Storage basée sur des fichiers.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"ADLS destination server",
"destinationServerType":"FILE_BASED_ADLS_GEN2",
"fileBasedAdlsGen2Destination":{
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_ADLS_GEN2
.fileBasedAdlsGen2Destination.path.templatingStrategy
PEBBLE_V1
.fileBasedAdlsGen2Destination.path.value
fileConfigurations
Création d’un serveur de destination Azure Blob Storage
Vous devez créer un serveur de destination Azure Blob Storage similaire à celui illustré ci-dessous au moment de la configuration d’une destination Azure Blob Storage basée sur des fichiers.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Blob destination server",
"destinationServerType":"FILE_BASED_AZURE_BLOB",
"fileBasedAzureBlobDestination":{
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
},
"container":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.container}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_AZURE_BLOB
.fileBasedAzureBlobDestination.path.templatingStrategy
PEBBLE_V1
.fileBasedAzureBlobDestination.path.value
fileBasedAzureBlobDestination.container.templatingStrategy
PEBBLE_V1
.fileBasedAzureBlobDestination.container.value
fileConfigurations
Création d’un serveur de destination Data Landing Zone (DLZ)
Vous devez créer un serveur de destination Data Landing Zone (DLZ) similaire à celui illustré ci-dessous au moment de la configuration d’une destination Data Landing Zone (DLZ) basée sur des fichiers.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"DLZ destination server",
"destinationServerType":"FILE_BASED_DLZ",
"fileBasedDlzDestination":{
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
},
"useCase": "Your use case"
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_DLZ
.fileBasedDlzDestination.path.templatingStrategy
PEBBLE_V1
.fileBasedDlzDestination.path.value
fileConfigurations
Création d’un serveur de destination Google Cloud Storage
Vous devez créer un serveur de destination Google Cloud Storage similaire à celui illustré ci-dessous au moment de la configuration d’une destination Google Cloud Storage basée sur des fichiers.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Google Cloud Storage Server",
"destinationServerType":"FILE_BASED_GOOGLE_CLOUD",
"fileBasedGoogleCloudStorageDestination":{
"bucket":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.bucket}}"
},
"path":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.path}}"
}
},
"fileConfigurations": {
"compression": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.compression}}"
},
"fileType": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.fileType}}"
},
"csvOptions": {
"quote": {
"templatingStrategy": "NONE",
"value": "\""
},
"quoteAll": {
"templatingStrategy": "NONE",
"value": "false"
},
"escape": {
"templatingStrategy": "NONE",
"value": "\\"
},
"escapeQuotes": {
"templatingStrategy": "NONE",
"value": "true"
},
"header": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreLeadingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"ignoreTrailingWhiteSpace": {
"templatingStrategy": "NONE",
"value": "true"
},
"nullValue": {
"templatingStrategy": "NONE",
"value": ""
},
"dateFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd"
},
"timestampFormat": {
"templatingStrategy": "NONE",
"value": "yyyy-MM-dd'T':mm:ss[.SSS][XXX]"
},
"charToEscapeQuoteEscaping": {
"templatingStrategy": "NONE",
"value": "\\"
},
"emptyValue": {
"templatingStrategy": "NONE",
"value": ""
}
}
}
}
name
destinationServerType
FILE_BASED_GOOGLE_CLOUD
.fileBasedGoogleCloudStorageDestination.bucket.templatingStrategy
PEBBLE_V1
.fileBasedGoogleCloudStorageDestination.bucket.value
fileBasedGoogleCloudStorageDestination.path.templatingStrategy
PEBBLE_V1
.fileBasedGoogleCloudStorageDestination.path.value
fileConfigurations
Créer des serveurs de destination de schéma dynamique
Les schémas dynamiques vous permettent de récupérer dynamiquement les attributs cibles pris en charge et de générer des schémas basés sur votre propre API. Vous devez configurer un serveur de destination pour les schémas dynamiques avant de pouvoir configurer le schéma.
Consultez dans l’onglet ci-dessous un exemple de serveur de destination pour les destinations qui utilisent les schémas dynamiques.
L’exemple de payload ci-dessous inclut tous les paramètres requis pour un serveur de schéma dynamique.
Création d’un serveur de schéma dynamique
Vous devez créer un serveur de schéma dynamique similaire à celui illustré ci-dessous quand vous configurez une destination qui récupère son schéma de profil à partir de votre propre point d’entrée de l’API. Contrairement à un schéma statique, un schéma dynamique n’utilise pas de tableau profileFields
, mais un serveur de schéma dynamique qui se connecte à votre propre API à partir de laquelle il récupère la configuration du schéma.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Dynamic Schema Server",
"destinationServerType":"URL_BASED",
"urlBasedDestination":{
"url":{
"templatingStrategy":"PEBBLE_V1",
"value":"https://YOUR_API_ENDPOINT/"
}
},
"httpTemplate":{
"httpMethod":"GET"
},
"responseFields":[
{
"templatingStrategy":"PEBBLE_V1",
"value":"{\n \"type\":\"object\",\n \"title\": \"Contact Schema\",\n \"properties\": {\n {% for setDefinition in response.body.items %}\n \"{{setDefinition.key}}\": {\n \"title\" : \"{{setDefinition.name.value}}\",\n \"type\" : \"object\",\n \"properties\": {\n {% for attribute in setDefinition.attributes %}\n \"{{attribute.key}}\": {\n \"title\" : \"{{attribute.name.value}}\",\n \"type\" : \"string\"\n }\n {% if not loop.last %},{%endif%}\n {% endfor %}\n }\n }\n {% if not loop.last %},{%endif%}\n {% endfor %}\n }\n}",
"name":"schema"
}
]
}
name
destinationServerType
URL_BASED
quand les serveurs de schéma sont dynamiques.urlBasedDestination.url.templatingStrategy
Obligatoire.
- Utilisez
PEBBLE_V1
si Adobe doit transformer l’URL dans le champvalue
ci-dessous. Utilisez cette option si vous disposez d’un point d’entrée tel que :https://api.moviestar.com/data/{{customerData.region}}/items
. - Utilisez
NONE
si aucune transformation n’est nécessaire du côté d’Adobe, par exemple si vous avez un point d’entrée tel que :https://api.moviestar.com/data/items
.
urlBasedDestination.url.value
httpTemplate.httpMethod
GET
.responseFields.templatingStrategy
PEBBLE_V1
.responseFields.value
Obligatoire. Cette chaîne est le modèle de transformation de caractères d’échappement transformant la réponse reçue de l’API du partenaire en schéma du partenaire qui s’affichera dans l’interface utilisateur de Platform.
- Pour plus d’informations sur l’écriture du modèle, lisez la section Utilisation des modèles.
- Pour plus d’informations sur l’échappement des caractères, reportez-vous à la section Norme RFC JSON, section 7.
- Pour obtenir un exemple de transformation simple, consultez la transformation des attributs de profil.
Création de serveurs de destination de liste déroulante dynamiques
Utilisez des listes déroulantes dynamiques pour récupérer et remplir de manière dynamique les champs de données client de liste déroulante, en fonction de votre propre API. Vous pouvez, par exemple, récupérer une liste des comptes d’utilisateurs existants que vous souhaitez utiliser pour une connexion de destination.
Vous devez configurer un serveur de destination pour les listes déroulantes dynamiques avant de pouvoir configurer le champ de données client de liste déroulante dynamique.
Voir dans l’onglet ci-dessous un exemple de serveur de destination utilisé pour récupérer dynamiquement les valeurs à afficher dans un sélecteur de liste déroulante, à partir d’une API.
L’exemple de payload ci-dessous inclut tous les paramètres requis pour un serveur de schéma dynamique.
Créez un serveur de liste déroulante dynamique
Vous devez créer un serveur de liste déroulante dynamique similaire à celui illustré ci-dessous lorsque vous configurez une destination qui récupère les valeurs d’un champ de données client de liste déroulante de votre propre point de terminaison API.
curl -X POST https://platform.adobe.io/data/core/activation/authoring/destination-servers \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '
{
"name":"Server for dynamic dropdown",
"destinationServerType":"URL_BASED",
"urlBasedDestination":{
"url":{
"templatingStrategy":"PEBBLE_V1",
"value":"https://api.moviestar.com/data/{{customerData.users}}/items"
}
},
"httpTemplate":{
"httpMethod":"GET",
"headers":[
{
"header":"Authorization",
"value":{
"templatingStrategy":"PEBBLE_V1",
"value":"My Bearer Token"
}
},
{
"header":"x-integration",
"value":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{customerData.integrationId}}"
}
},
{
"header":"Accept",
"value":{
"templatingStrategy":"NONE",
"value":"application/json"
}
}
]
},
"responseFields":[
{
"templatingStrategy":"PEBBLE_V1",
"value":"{% set list = [] %} {% for record in response.body %} {% set list = list|merge([{'name' : record.name, 'value' : record.id }]) %} {% endfor %}{{ {'list': list} | toJson | raw }}",
"name":"list"
}
]
}
name
destinationServerType
URL_BASED
pour les serveurs de liste déroulante dynamiques.urlBasedDestination.url.templatingStrategy
Obligatoire.
- Utilisez
PEBBLE_V1
si Adobe doit transformer l’URL dans le champvalue
ci-dessous. Utilisez cette option si vous disposez d’un point d’entrée tel que :https://api.moviestar.com/data/{{customerData.region}}/items
. - Utilisez
NONE
si aucune transformation n’est nécessaire du côté d’Adobe, par exemple si vous avez un point d’entrée tel que :https://api.moviestar.com/data/items
.
urlBasedDestination.url.value
httpTemplate.httpMethod
GET
.httpTemplate.headers
responseFields.templatingStrategy
PEBBLE_V1
.responseFields.value
Obligatoire. Cette chaîne est le modèle de transformation avec échappement par les caractères qui transforme la réponse reçue de votre API en valeurs qui s’afficheront dans l’interface utilisateur de Platform.
- Pour plus d’informations sur l’écriture du modèle, lisez la section Utilisation des modèles.
- Pour plus d’informations sur l’échappement des caractères, reportez-vous à la section Norme RFC JSON, section 7.
Gestion des erreurs d’API
Les points d’entrée de l’API Destination SDK suivent les principes généraux des messages d’erreur de l’API Experience Platform. Consultez les sections Codes dʼétat d’API et Erreurs dʼen-tête de requête dans le guide de dépannage de Platform.
Étapes suivantes
Vous êtes arrivé au bout de ce document. À présent, vous savez comment créer un serveur de destination avec le point d’entrée /authoring/destination-servers
Destination SDK de l’API.
Pour en savoir plus sur les fonctionnalités offertes par ce point d’entrée, consultez les articles suivants :
Pour comprendre la place de ce point d’entrée dans le processus de création de destinations, consultez les articles suivants :