Criar uma configuração do servidor de destino

A criação de um servidor de destino é a primeira etapa na criação de seu próprio destino com o Destination SDK. O servidor de destino inclui opções de configuração para as especificações do servidor e do modelo, o formato de mensagem e as opções de formatação de arquivo (para destinos baseados em arquivo).

Esta página exemplifica a solicitação de API e a carga que você pode usar para criar seu próprio servidor de destino usando o ponto de extremidade de API /authoring/destination-servers.

Para obter uma descrição detalhada dos recursos que você pode configurar por meio desse endpoint, leia os seguintes artigos:

IMPORTANT
Todos os nomes e valores de parâmetros suportados pelo Destination SDK fazem distinção entre maiúsculas e minúsculas. Para evitar erros de diferenciação entre maiúsculas e minúsculas, use os nomes e valores dos parâmetros exatamente como mostrado na documentação.

Introdução às operações de API do servidor de destino get-started

Antes de continuar, consulte o guia de introdução para obter informações importantes que você precisa saber para fazer chamadas com êxito para a API, incluindo como obter a permissão de criação de destino e os cabeçalhos necessários.

Criar uma configuração do servidor de destino create

Você pode criar uma nova configuração do servidor de destino fazendo uma solicitação POST para o ponto de extremidade /authoring/destination-servers.

TIP
Ponto de extremidade de API: platform.adobe.io/data/core/activation/authoring/destination-servers

Formato da API

POST /authoring/destination-servers

Dependendo do tipo de destino criado, é necessário configurar um tipo de servidor de destino ligeiramente diferente.

Criar servidores de destino de esquema estáticos static-destination-servers

Consulte nas guias abaixo exemplos de servidores de destino para destinos que usam esquemas estáticos.

As cargas de exemplo abaixo incluem todos os parâmetros compatíveis com cada tipo de servidor de destino. Não é necessário incluir todos os parâmetros em sua solicitação. A carga é personalizável com base nas suas necessidades.

Selecione cada guia abaixo para exibir as solicitações de API correspondentes.

Tempo real (streaming)

Criar um servidor de destino (streaming) em tempo real

Você precisa criar um servidor de destino em tempo real (transmissão) semelhante ao mostrado abaixo ao configurar uma integração baseada em API em tempo real (transmissão).

accordion
Solicitação
code language-shell
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"
   }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 layout-auto
Parâmetro Tipo Descrição
name String Obrigatório. Representa um nome amigável do servidor, visível somente para Adobe. Este nome não está visível para parceiros ou clientes. Exemplo Moviestar destination server.
destinationServerType String Obrigatório. Definido como URL_BASED para destinos em tempo real (streaming).
urlBasedDestination.url.templatingStrategy String

Obrigatório.

  • Use PEBBLE_V1 se o Adobe precisar transformar a URL no campo value abaixo. Use esta opção se você tiver um ponto de extremidade como https://api.moviestar.com/data/{{customerData.region}}/items, em que a parte region pode ser diferente entre os clientes. Nesse caso, você também precisa configurar region como um campo de dados do cliente na [configuração de destino] (…/destination-configuration/create-destination-configuration.md.
  • Use NONE se nenhuma transformação for necessária no lado do Adobe, por exemplo, se você tiver um ponto de extremidade como: https://api.moviestar.com/data/items.
urlBasedDestination.url.value String Obrigatório. Preencha o endereço do ponto de extremidade de API ao qual o Experience Platform deve se conectar.
httpTemplate.httpMethod String Obrigatório. O método que o Adobe usará nas chamadas para o servidor. As opções são GET, PUT, POST, DELETE, PATCH.
httpTemplate.requestBody.templatingStrategy String Obrigatório. Use PEBBLE_V1.
httpTemplate.requestBody.value String

Obrigatório. Esta cadeia de caracteres é a versão com caractere de escape que transforma os dados de clientes da Platform no formato que seu serviço espera.

httpTemplate.contentType String Obrigatório. O tipo de conteúdo que seu servidor aceita. Este valor provavelmente é application/json.
accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.
Amazon S3

Criar um servidor de destino do Amazon S3

Você precisa criar um servidor de destino Amazon S3 semelhante ao mostrado abaixo ao configurar um destino Amazon S3 baseado em arquivo.

accordion
Solicitação
code language-shell
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": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parâmetro Tipo Descrição
name String O nome da conexão de destino.
destinationServerType String Defina esse valor de acordo com sua plataforma de destino. Para Amazon S3, defina como FILE_BASED_S3.
fileBasedS3Destination.bucket.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedS3Destination.bucket.value String O nome do bucket Amazon S3 a ser usado por este destino.
fileBasedS3Destination.path.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedS3Destination.path.value String O caminho para a pasta de destino que hospedará os arquivos exportados.
fileConfigurations N/D Consulte configuração de formatação de arquivo para obter informações detalhadas sobre como definir essas configurações.
accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.
SFTP

Criar um SFTP servidor de destino

Você precisa criar um servidor de destino SFTP semelhante ao mostrado abaixo ao configurar um destino SFTP baseado em arquivo.

accordion
Solicitação
code language-shell
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": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 9-row-3 layout-auto
Parâmetro Tipo Descrição
name String O nome da conexão de destino.
destinationServerType String Defina esse valor de acordo com sua plataforma de destino. Para destinos SFTP, defina como FILE_BASED_SFTP.
fileBasedSFTPDestination.rootDirectory.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedSFTPDestination.rootDirectory.value String O diretório raiz do armazenamento de destino.
fileBasedSFTPDestination.hostName.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedSFTPDestination.hostName.value String O nome do host do armazenamento de destino.
port Número inteiro A porta do servidor de arquivos SFTP.
encryptionMode String

Indica se deve ser usada criptografia de arquivo. Valores compatíveis:

  • PGP
  • None
fileConfigurations N/D Consulte configuração de formatação de arquivo para obter informações detalhadas sobre como definir essas configurações.
accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.
Armazenamento do Azure Data Lake

Criar um Azure Data Lake Storage servidor de destino

Você precisa criar um servidor de destino Azure Data Lake Storage semelhante ao mostrado abaixo ao configurar um destino Azure Data Lake Storage baseado em arquivo.

accordion
Solicitação
code language-shell
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": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 layout-auto
Parâmetro Tipo Descrição
name String O nome da conexão de destino.
destinationServerType String Defina esse valor de acordo com sua plataforma de destino. Para destinos Azure Data Lake Storage, defina como FILE_BASED_ADLS_GEN2.
fileBasedAdlsGen2Destination.path.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedAdlsGen2Destination.path.value String O caminho para a pasta de destino que hospedará os arquivos exportados.
fileConfigurations N/D Consulte configuração de formatação de arquivo para obter informações detalhadas sobre como definir essas configurações.
accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.
Armazenamento Azure Blob

Criar um Azure Blob Storage servidor de destino

Você precisa criar um servidor de destino Azure Blob Storage semelhante ao mostrado abaixo ao configurar um destino Azure Blob Storage baseado em arquivo.

accordion
Solicitação
code language-shell
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": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parâmetro Tipo Descrição
name String O nome da conexão de destino.
destinationServerType String Defina esse valor de acordo com sua plataforma de destino. Para destinos Azure Blob Storage, defina como FILE_BASED_AZURE_BLOB.
fileBasedAzureBlobDestination.path.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedAzureBlobDestination.path.value String O caminho para a pasta de destino que hospedará os arquivos exportados.
fileBasedAzureBlobDestination.container.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedAzureBlobDestination.container.value String O nome do contêiner Azure Blob Storage a ser usado por este destino.
fileConfigurations N/D Consulte configuração de formatação de arquivo para obter informações detalhadas sobre como definir essas configurações.
accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.
DLZ (Zona de Aterrissagem de Dados)

Criar um Data Landing Zone (DLZ) servidor de destino

Você precisa criar um servidor de destino Data Landing Zone (DLZ) semelhante ao mostrado abaixo ao configurar um destino Data Landing Zone (DLZ) baseado em arquivo.

accordion
Solicitação
code language-shell
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": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 layout-auto
Parâmetro Tipo Descrição
name String O nome da conexão de destino.
destinationServerType String Defina esse valor de acordo com sua plataforma de destino. Para destinos Data Landing Zone, defina como FILE_BASED_DLZ.
fileBasedDlzDestination.path.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedDlzDestination.path.value String O caminho para a pasta de destino que hospedará os arquivos exportados.
fileConfigurations N/D Consulte configuração de formatação de arquivo para obter informações detalhadas sobre como definir essas configurações.
accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.
Armazenamento na nuvem do Google

Criar um Google Cloud Storage servidor de destino

Você precisa criar um servidor de destino Google Cloud Storage semelhante ao mostrado abaixo ao configurar um destino Google Cloud Storage baseado em arquivo.

accordion
Solicitação
code language-shell
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": ""
            }
        }
    }
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parâmetro Tipo Descrição
name String O nome da conexão de destino.
destinationServerType String Defina esse valor de acordo com sua plataforma de destino. Para destinos Google Cloud Storage, defina como FILE_BASED_GOOGLE_CLOUD.
fileBasedGoogleCloudStorageDestination.bucket.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.bucket.value String O nome do bucket Google Cloud Storage a ser usado por este destino.
fileBasedGoogleCloudStorageDestination.path.templatingStrategy String Obrigatório. Use PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.path.value String O caminho para a pasta de destino que hospedará os arquivos exportados.
fileConfigurations N/D Consulte configuração de formatação de arquivo para obter informações detalhadas sobre como definir essas configurações.
accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.

Criar servidores de destino de esquema dinâmico dynamic-schema-servers

Os esquemas dinâmicos permitem recuperar dinamicamente os atributos de destino compatíveis e gerar esquemas com base em sua própria API. Você precisa configurar um servidor de destino para esquemas dinâmicos antes de poder configurar o esquema.

Veja na guia abaixo um exemplo de servidor de destino para destinos que usam esquemas dinâmicos.

A carga de exemplo abaixo inclui todos os parâmetros necessários para um servidor de esquema dinâmico.

Servidor de esquema dinâmico

Criar um servidor de esquema dinâmico

É necessário criar um servidor de esquema dinâmico semelhante ao mostrado abaixo ao configurar um destino que recupera o esquema de perfil de seu próprio ponto de acesso de API. Ao contrário de um esquema estático, um esquema dinâmico não usa uma matriz profileFields. Em vez disso, os esquemas dinâmicos usam um servidor de esquema dinâmico que se conecta à sua própria API de onde recupera a configuração do esquema.

accordion
Solicitação
code language-shell
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"
      }
   ]
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 layout-auto
Parâmetro Tipo Descrição
name String Obrigatório. Representa um nome amigável do servidor de esquema dinâmico, visível somente para Adobe.
destinationServerType String Obrigatório. Definido como URL_BASED para servidores de esquema dinâmicos.
urlBasedDestination.url.templatingStrategy String

Obrigatório.

  • Use PEBBLE_V1 se o Adobe precisar transformar a URL no campo value abaixo. Use esta opção se você tiver um ponto de extremidade como: https://api.moviestar.com/data/{{customerData.region}}/items.
  • Use NONE se nenhuma transformação for necessária no lado do Adobe, por exemplo, se você tiver um ponto de extremidade como: https://api.moviestar.com/data/items.
urlBasedDestination.url.value String Obrigatório. Preencha o endereço do ponto de extremidade da API ao qual o Experience Platform deve se conectar e recupere os campos de esquema para preencher como campos de destino na etapa de mapeamento do fluxo de trabalho de ativação.
httpTemplate.httpMethod String Obrigatório. O método que o Adobe usará nas chamadas para o servidor. Para servidores de esquema dinâmicos, use GET.
responseFields.templatingStrategy String Obrigatório. Use PEBBLE_V1.
responseFields.value String

Obrigatório. Esta cadeia de caracteres é o modelo de transformação com escape de caracteres que transforma a resposta recebida da API do parceiro no esquema do parceiro que será exibido na interface do usuário da plataforma.

accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.

Criar servidores de destino de lista suspensa dinâmica dynamic-dropdown-servers

Use menus suspensos dinâmicos para recuperar e preencher dinamicamente campos suspensos de dados do cliente, com base em sua própria API. Por exemplo, você pode recuperar uma lista de contas de usuário existentes que deseja usar para uma conexão de destino.

Você precisa configurar um servidor de destino para menus suspensos dinâmicos antes de poder configurar o campo de dados do cliente da lista suspensa dinâmica.

Consulte na guia abaixo um exemplo de servidor de destino usado para recuperar dinamicamente os valores a serem exibidos em um seletor suspenso, de uma API.

A carga de exemplo abaixo inclui todos os parâmetros necessários para um servidor de esquema dinâmico.

Servidor de lista suspensa dinâmico

Criar um servidor suspenso dinâmico

É necessário criar um servidor suspenso dinâmico semelhante ao mostrado abaixo ao configurar um destino que recupera os valores de um campo suspenso de dados do cliente do seu próprio ponto de acesso de API.

accordion
Solicitação
code language-shell
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"
      }
   ]
}
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 layout-auto
Parâmetro Tipo Descrição
name String Obrigatório. Representa um nome amigável do servidor de lista suspensa dinâmica, visível somente para Adobe.
destinationServerType String Obrigatório. Definido como URL_BASED para servidores suspensos dinâmicos.
urlBasedDestination.url.templatingStrategy String

Obrigatório.

  • Use PEBBLE_V1 se o Adobe precisar transformar a URL no campo value abaixo. Use esta opção se você tiver um ponto de extremidade como: https://api.moviestar.com/data/{{customerData.region}}/items.
  • Use NONE se nenhuma transformação for necessária no lado do Adobe, por exemplo, se você tiver um ponto de extremidade como: https://api.moviestar.com/data/items.
urlBasedDestination.url.value String Obrigatório. Preencha o endereço do ponto de extremidade da API ao qual o Experience Platform deve se conectar e recuperar os valores da lista suspensa.
httpTemplate.httpMethod String Obrigatório. O método que o Adobe usará nas chamadas para o servidor. Para servidores suspensos dinâmicos, use GET.
httpTemplate.headers Objeto Optiona.l Inclua todos os cabeçalhos necessários para se conectar ao servidor de lista suspensa dinâmica.
responseFields.templatingStrategy String Obrigatório. Use PEBBLE_V1.
responseFields.value String

Obrigatório. Esta cadeia de caracteres é o modelo de transformação com caractere de escape que transforma a resposta recebida de sua API nos valores que serão exibidos na interface do usuário da Platform.

accordion
Resposta
Uma resposta bem-sucedida retorna o status HTTP 200 com detalhes da configuração do servidor de destino recém-criado.

Manipulação de erros de API error-handling

Os endpoints da API Destination SDK seguem os princípios gerais de mensagem de erro da API Experience Platform. Consulte códigos de status da API e erros no cabeçalho da solicitação no guia de solução de problemas da Platform.

Próximas etapas next-steps

Depois de ler este documento, agora você sabe como criar um novo servidor de destino por meio do ponto de extremidade da API do Destination SDK /authoring/destination-servers.

Para saber mais sobre o que você pode fazer com esse endpoint, consulte os seguintes artigos:

Para entender onde esse endpoint se encaixa no processo de criação de destino, consulte os seguintes artigos:

recommendation-more-help
7f4d1967-bf93-4dba-9789-bb6b505339d6