Spécifications de modèle pour les destinations créées avec Destination SDK
Utilisez la partie de spécification du modèle de la configuration du serveur de destination pour configurer la manière de formater les requêtes HTTP envoyées à la destination.
Dans une spécification de modèle, vous pouvez définir comment transformer les champs d’attribut de profil entre le schéma XDM et le format pris en charge par votre plateforme.
Les spécifications de modèle font partie de la configuration du serveur de destination pour les destinations en temps réel (streaming).
Pour comprendre où ce composant entre dans une intégration créée avec Destination SDK, reportez-vous au diagramme de la documentation options de configuration ou consultez le guide sur la utilisation de la Destination SDK pour configurer une destination de diffusion en continu.
Vous pouvez configurer les spécifications du modèle pour la destination via le point d’entrée /authoring/destination-servers
. Pour obtenir des exemples d’appels API détaillés dans lesquels vous pouvez configurer les composants affichés sur cette page, consultez les pages de référence de l’API suivantes.
Types d’intégration pris en charge supported-integration-types
Pour en savoir plus sur les types d’intégration qui prennent en charge les fonctionnalités décrites sur cette page, consultez le tableau ci-dessous.
Configuration d’une spécification de modèle configure-template-spec
Adobe utilise un langage de modèle similaire à Jinja pour transformer les champs du schéma XDM en un format pris en charge par la destination.
Pour plus d’informations sur la transformation, consultez les liens ci-dessous :
Consultez ci-dessous un modèle type de requête HTTP, ainsi que des descriptions de chaque paramètre individuel.
{
"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"
}
}
httpMethod
GET
, PUT
, POST
, DELETE
, PATCH
.templatingStrategy
PEBBLE_V1
.value
Pour plus d’informations sur l’écriture du modèle, consultez la section Utilisation des modèles.
Pour plus d’informations sur les caractères d’échappement, consultez la section Norme RFC JSON, section 7.
Pour obtenir un exemple de transformation simple, consultez la transformation des attributs de profil.
contentType
application/json
.Étapes suivantes next-steps
Vous êtes arrivé au bout de cet article. À présent, vous devriez mieux comprendre ce qu’est une spécification de modèle et comment la configurer.
Pour en savoir plus sur les autres composants de serveur de destination, consultez les articles suivants :