Creare una configurazione del server di destinazione
Last update: Tue Oct 31 2023 00:00:00 GMT+0000 (Coordinated Universal Time)
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:
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.
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:
|
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: