Especificações de modelo para destinos criados com o Destination SDK
Use a parte de especificação do modelo da configuração do servidor de destino para definir como formatar as solicitações HTTP enviadas para o seu destino.
Em uma especificação de modelo, é possível definir como transformar campos de atributo de perfil entre o esquema XDM e o formato compatível com sua plataforma.
As especificações do modelo fazem parte da configuração do servidor de destino para destinos em tempo real (transmissão).
Para entender onde esse componente se encaixa em uma integração criada com o Destination SDK, consulte o diagrama na documentação de opções de configuração ou consulte o guia sobre como usar o Destination SDK para configurar um destino de streaming.
Você pode configurar as especificações do modelo para o seu destino por meio do ponto de extremidade /authoring/destination-servers
. Consulte as seguintes páginas de referência de API para obter exemplos detalhados de chamadas de API, onde é possível configurar os componentes mostrados nesta página.
Tipos de integração compatíveis supported-integration-types
Consulte a tabela abaixo para obter detalhes sobre quais tipos de integrações suportam a funcionalidade descrita nesta página.
Configurar uma especificação de modelo configure-template-spec
O Adobe usa uma linguagem de modelo semelhante a Jinja para transformar os campos do esquema XDM em um formato compatível com seu destino.
Para obter mais informações sobre a transformação, visite os links abaixo:
Veja abaixo um exemplo de um modelo de solicitação HTTP, juntamente com descrições de cada parâmetro individual.
{
"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
Para obter informações sobre como gravar o modelo, leia a seção sobre usando o modelo.
Para obter mais informações sobre o escape de caracteres, consulte o padrão RFC JSON, seção sete.
Para obter um exemplo de uma transformação simples, consulte a transformação atributos de perfil.
contentType
application/json
.Próximas etapas next-steps
Depois de ler este artigo, você terá que entender melhor o que é uma especificação de modelo e como configurá-la.
Para saber mais sobre os outros componentes do servidor de destino, consulte os seguintes artigos: