Creare una configurazione del server di destinazione

La creazione di un server di destinazione è il primo passo per la creazione di una destinazione personalizzata con Destination SDK. Il server di destinazione include opzioni di configurazione per server e modello specifiche, formato del messaggioe formattazione file (per destinazioni basate su file).

Questa pagina esemplifica la richiesta API e il payload che è possibile utilizzare per creare il server di destinazione utilizzando /authoring/destination-servers Endpoint API

Per una descrizione dettagliata delle funzionalità che puoi configurare tramite questo endpoint, leggi i seguenti articoli:

IMPORTANT
Tutti i nomi e i valori dei parametri supportati da Destination SDK sono distinzione maiuscole/minuscole. Per evitare errori di distinzione tra maiuscole e minuscole, utilizza i nomi e i valori dei parametri esattamente come mostrato nella documentazione.

Guida introduttiva alle operazioni API del server di destinazione get-started

Prima di continuare, controlla guida introduttiva per informazioni importanti che è necessario conoscere per effettuare correttamente chiamate all’API, tra cui come ottenere l’autorizzazione di authoring della destinazione richiesta e le intestazioni richieste.

Creare una configurazione del server di destinazione create

È possibile creare una nuova configurazione del server di destinazione effettuando una POST richiesta al /authoring/destination-servers endpoint.

TIP
Endpoint API: platform.adobe.io/data/core/activation/authoring/destination-servers

Formato API

POST /authoring/destination-servers

A seconda del tipo di destinazione creato, è necessario configurare un tipo leggermente diverso di server di destinazione.

Creare server di destinazione con schema statico static-destination-servers

Vedi nelle schede seguenti esempi di server di destinazione per le destinazioni che utilizzano schemi statici.

I payload di esempio seguenti includono tutti i parametri supportati da ciascun tipo di server di destinazione. Non è necessario includere tutti i parametri nella richiesta. Il payload è personalizzabile in base alle tue esigenze.

Seleziona ciascuna scheda di seguito per visualizzare le richieste API corrispondenti.

Tempo reale (streaming)

Creare un server di destinazione in tempo reale (streaming)

Quando configuri un’integrazione basata su API in tempo reale (streaming), devi creare un server di destinazione in tempo reale (streaming) simile a quello mostrato di seguito.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Obbligatorio. Rappresenta un nome descrittivo del server, visibile solo agli Adobi. Questo nome non è visibile ai partner o ai clienti. Esempio Moviestar destination server.
destinationServerType Stringa Obbligatorio. Imposta su URL_BASED per destinazioni in tempo reale (streaming).
urlBasedDestination.url.templatingStrategy Stringa

Obbligatorio.

  • Utilizzare PEBBLE_V1 se Adobe deve trasformare l’URL in value di seguito. Utilizza questa opzione se disponi di un endpoint come https://api.moviestar.com/data/{{customerData.region}}/items, in cui region parte può variare tra i clienti. In questo caso è necessario configurare anche region as a campo dati cliente nel [configurazione di destinazione] (…/destination-configuration/create-destination-configuration.md.
  • Utilizzare NONE se non è necessaria alcuna trasformazione sul lato Adobe, ad esempio se si dispone di un endpoint come: https://api.moviestar.com/data/items.
urlBasedDestination.url.value Stringa Obbligatorio. Inserisci l’indirizzo dell’endpoint API a cui l’Experience Platform deve connettersi.
httpTemplate.httpMethod Stringa Obbligatorio. Il metodo che Adobe utilizzerà nelle chiamate al server. Le opzioni sono GET, PUT, POST, DELETE, PATCH.
httpTemplate.requestBody.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
httpTemplate.requestBody.value Stringa

Obbligatorio. Questa stringa è la versione con escape di carattere che trasforma i dati dei clienti di Platform nel formato previsto dal servizio.

httpTemplate.contentType Stringa Obbligatorio. Il tipo di contenuto accettato dal server. Questo valore è molto probabile application/json.
accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.
Amazon S3

Creare un server di destinazione Amazon S3

Devi creare un’ Amazon S3 server di destinazione simile a quello mostrato di seguito quando si configura un server basato su file Amazon S3 destinazione.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Nome della connessione di destinazione.
destinationServerType Stringa Imposta questo valore in base alla piattaforma di destinazione. Per Amazon S3, imposta su FILE_BASED_S3.
fileBasedS3Destination.bucket.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedS3Destination.bucket.value Stringa Il nome del Amazon S3 bucket da utilizzare per questa destinazione.
fileBasedS3Destination.path.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedS3Destination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Consulta configurazione formattazione file per informazioni dettagliate su come configurare queste impostazioni.
accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.
SFTP

Creare un SFTP server di destinazione

Devi creare un’ SFTP server di destinazione simile a quello mostrato di seguito quando si configura un server basato su file SFTP destinazione.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Nome della connessione di destinazione.
destinationServerType Stringa Imposta questo valore in base alla piattaforma di destinazione. Per SFTP destinazioni, impostalo su FILE_BASED_SFTP.
fileBasedSFTPDestination.rootDirectory.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedSFTPDestination.rootDirectory.value Stringa La directory radice dell'archiviazione di destinazione.
fileBasedSFTPDestination.hostName.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedSFTPDestination.hostName.value Stringa Nome host dell'archiviazione di destinazione.
port Intero Porta del file server SFTP.
encryptionMode Stringa

Indica se utilizzare la crittografia file. Valori supportati:

  • PGP
  • Nessuna
fileConfigurations N/D Consulta configurazione formattazione file per informazioni dettagliate su come configurare queste impostazioni.
accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.
Archiviazione Azure Data Lake

Creare un Azure Data Lake Storage server di destinazione

Devi creare un’ Azure Data Lake Storage server di destinazione simile a quello mostrato di seguito quando si configura un server basato su file Azure Data Lake Storage destinazione.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Nome della connessione di destinazione.
destinationServerType Stringa Imposta questo valore in base alla piattaforma di destinazione. Per Azure Data Lake Storage destinazioni, impostalo su FILE_BASED_ADLS_GEN2.
fileBasedAdlsGen2Destination.path.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedAdlsGen2Destination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Consulta configurazione formattazione file per informazioni dettagliate su come configurare queste impostazioni.
accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.
Archiviazione BLOB di Azure

Creare un Azure Blob Storage server di destinazione

Devi creare un’ Azure Blob Storage server di destinazione simile a quello mostrato di seguito quando si configura un server basato su file Azure Blob Storage destinazione.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Nome della connessione di destinazione.
destinationServerType Stringa Imposta questo valore in base alla piattaforma di destinazione. Per Azure Blob Storage destinazioni, impostalo su FILE_BASED_AZURE_BLOB.
fileBasedAzureBlobDestination.path.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedAzureBlobDestination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileBasedAzureBlobDestination.container.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedAzureBlobDestination.container.value Stringa Il nome del Azure Blob Storage contenitore utilizzato da questa destinazione.
fileConfigurations N/D Consulta configurazione formattazione file per informazioni dettagliate su come configurare queste impostazioni.
accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.
Data Landing Zone (DLZ)

Creare un Data Landing Zone (DLZ) server di destinazione

Devi creare un Data Landing Zone (DLZ) server di destinazione simile a quello mostrato di seguito quando si configura un server basato su file Data Landing Zone (DLZ) destinazione.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Nome della connessione di destinazione.
destinationServerType Stringa Imposta questo valore in base alla piattaforma di destinazione. Per Data Landing Zone destinazioni, impostalo su FILE_BASED_DLZ.
fileBasedDlzDestination.path.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedDlzDestination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Consulta configurazione formattazione file per informazioni dettagliate su come configurare queste impostazioni.
accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.
Archiviazione cloud Google

Creare un Google Cloud Storage server di destinazione

Devi creare un Google Cloud Storage server di destinazione simile a quello mostrato di seguito quando si configura un server basato su file Google Cloud Storage destinazione.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Nome della connessione di destinazione.
destinationServerType Stringa Imposta questo valore in base alla piattaforma di destinazione. Per Google Cloud Storage destinazioni, impostalo su FILE_BASED_GOOGLE_CLOUD.
fileBasedGoogleCloudStorageDestination.bucket.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.bucket.value Stringa Il nome del Google Cloud Storage bucket da utilizzare per questa destinazione.
fileBasedGoogleCloudStorageDestination.path.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Consulta configurazione formattazione file per informazioni dettagliate su come configurare queste impostazioni.
accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.

Creare server di destinazione con schema dinamico dynamic-schema-servers

Gli schemi dinamici ti consentono di recuperare dinamicamente gli attributi di destinazione supportati e generare schemi in base alla tua API. Per configurare lo schema, è necessario configurare un server di destinazione per gli schemi dinamici.

Vedi nella scheda seguente un esempio di server di destinazione per le destinazioni che utilizzano schemi dinamici.

Il payload di esempio seguente include tutti i parametri necessari per un server di schema dinamico.

Server schema dinamico

Creare un server di schema dinamico

Quando configuri una destinazione che recupera lo schema del profilo dal tuo endpoint API, devi creare un server schema dinamico simile a quello mostrato di seguito. A differenza di uno schema statico, uno schema dinamico non utilizza profileFields array. Gli schemi dinamici utilizzano invece un server di schema dinamico che si connette alla tua API da dove recupera la configurazione dello schema.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Obbligatorio. Rappresenta un nome descrittivo del server dello schema dinamico, visibile solo agli Adobi.
destinationServerType Stringa Obbligatorio. Imposta su URL_BASED per i server di schema dinamico.
urlBasedDestination.url.templatingStrategy Stringa

Obbligatorio.

  • Utilizzare PEBBLE_V1 se Adobe deve trasformare l’URL in value di seguito. Utilizza questa opzione se disponi di un endpoint come: https://api.moviestar.com/data/{{customerData.region}}/items.
  • Utilizzare NONE se non è necessaria alcuna trasformazione sul lato Adobe, ad esempio se si dispone di un endpoint come: https://api.moviestar.com/data/items.
urlBasedDestination.url.value Stringa Obbligatorio. Inserisci l’indirizzo dell’endpoint API a cui Experienci Platform deve connettersi e recupera i campi dello schema da compilare come campi di destinazione nel passaggio di mappatura del flusso di lavoro di attivazione.
httpTemplate.httpMethod Stringa Obbligatorio. Il metodo che Adobe utilizzerà nelle chiamate al server. Per i server con schema dinamico, utilizza GET.
responseFields.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
responseFields.value Stringa

Obbligatorio. Questa stringa è il modello di trasformazione con escape di carattere che trasforma la risposta ricevuta dall’API partner nello schema partner che verrà visualizzato nell’interfaccia utente di Platform.

accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.

Creare server di destinazione dinamici a discesa dynamic-dropdown-servers

Utilizzare elenchi a discesa dinamici per recuperare e popolare dinamicamente i campi dei dati dei clienti a discesa, in base alla tua API. Ad esempio, puoi recuperare un elenco di account utente esistenti che desideri utilizzare per una connessione di destinazione.

Prima di poter configurare il campo dati cliente a discesa dinamico, è necessario configurare un server di destinazione per i menu a discesa dinamici.

Vedi nella scheda seguente un esempio di server di destinazione utilizzato per recuperare in modo dinamico da un’API i valori da visualizzare in un selettore a discesa.

Il payload di esempio seguente include tutti i parametri necessari per un server di schema dinamico.

Server a discesa dinamico

Creare un server a discesa dinamico

Quando configuri una destinazione che recupera i valori di un campo dati cliente a discesa dal tuo endpoint API, devi creare un server a discesa dinamico simile a quello mostrato di seguito.

accordion
Richiesta
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
Parametro Tipo Descrizione
name Stringa Obbligatorio. Rappresenta un nome descrittivo del server a discesa dinamico, visibile solo agli Adobi.
destinationServerType Stringa Obbligatorio. Imposta su URL_BASED per i server a discesa dinamici.
urlBasedDestination.url.templatingStrategy Stringa

Obbligatorio.

  • Utilizzare PEBBLE_V1 se Adobe deve trasformare l’URL in value di seguito. Utilizza questa opzione se disponi di un endpoint come: https://api.moviestar.com/data/{{customerData.region}}/items.
  • Utilizzare NONE se non è necessaria alcuna trasformazione sul lato Adobe, ad esempio se si dispone di un endpoint come: https://api.moviestar.com/data/items.
urlBasedDestination.url.value Stringa Obbligatorio. Inserisci l’indirizzo dell’endpoint API a cui Experienci Platform deve connettersi e recuperare i valori del menu a discesa.
httpTemplate.httpMethod Stringa Obbligatorio. Il metodo che Adobe utilizzerà nelle chiamate al server. Per i server a discesa dinamici, utilizza GET.
httpTemplate.headers Oggetto Facoltativa.l Includi le intestazioni necessarie per la connessione al server a discesa dinamico.
responseFields.templatingStrategy Stringa Obbligatorio. Seleziona PEBBLE_V1.
responseFields.value Stringa

Obbligatorio. Questa stringa è il modello di trasformazione con escape di carattere che trasforma la risposta ricevuta dall’API nei valori che verranno visualizzati nell’interfaccia utente di Platform.

accordion
Risposta
In caso di esito positivo, la risposta restituisce lo stato HTTP 200 con i dettagli della configurazione del server di destinazione appena creata.

Gestione degli errori API error-handling

Gli endpoint API di Destination SDK seguono i principi generali dei messaggi di errore API di Experience Platform. Fai riferimento a Codici di stato API e errori di intestazione della richiesta nella guida alla risoluzione dei problemi di Platform.

Passaggi successivi next-steps

Dopo aver letto questo documento, ora sai come creare un nuovo server di destinazione tramite la Destination SDK /authoring/destination-servers Endpoint API

Per ulteriori informazioni su cosa è possibile fare con questo endpoint, consulta i seguenti articoli:

Per capire dove questo endpoint si inserisce nel processo di authoring della destinazione, vedi i seguenti articoli:

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