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 le opzioni di configurazione per le specifiche server e modelli, il formato messaggio e le opzioni formattazione file (per le destinazioni basate su file).

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

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 con distinzione tra maiuscole e 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, consulta la guida introduttiva per informazioni importanti che devi 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 richiesta POST all'endpoint /authoring/destination-servers.

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 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. Impostato su URL_BASED per le destinazioni in tempo reale (streaming).
urlBasedDestination.url.templatingStrategy Stringa

Obbligatorio.

  • Utilizza PEBBLE_V1 se Adobe deve trasformare l'URL nel campo value di seguito. Utilizzare questa opzione se si dispone di un endpoint come https://api.moviestar.com/data/{{customerData.region}}/items, in cui la parte region può differire tra i clienti. In questo caso è inoltre necessario configurare region come campo dati cliente nella [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. Inserire 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. Utilizza PEBBLE_V1.
httpTemplate.requestBody.value Stringa

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

  • Per informazioni su come scrivere il modello, leggere la sezione Utilizzo dei modelli.
  • Per ulteriori informazioni sull'escape di caratteri, consulta lo standard JSON RFC, sezione sette.
  • Per un esempio di semplice trasformazione, fare riferimento alla trasformazione Attributi profilo.
httpTemplate.contentType Stringa Obbligatorio. Il tipo di contenuto accettato dal server. Questo valore è molto probabilmente 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

Quando si configura una destinazione Amazon S3 basata su file, è necessario creare un server di destinazione Amazon S3 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": "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, impostarlo su FILE_BASED_S3.
fileBasedS3Destination.bucket.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedS3Destination.bucket.value Stringa Nome del bucket Amazon S3 che deve essere utilizzato da questa destinazione.
fileBasedS3Destination.path.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedS3Destination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Per informazioni dettagliate su come configurare queste impostazioni, vedere configurazione formattazione file.
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

Crea un server di destinazione SFTP

Quando si configura una destinazione SFTP basata su file, è necessario creare un server di destinazione SFTP 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":"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, impostare su FILE_BASED_SFTP.
fileBasedSFTPDestination.rootDirectory.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedSFTPDestination.rootDirectory.value Stringa La directory radice dell'archiviazione di destinazione.
fileBasedSFTPDestination.hostName.templatingStrategy Stringa Obbligatorio. Utilizza 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 Per informazioni dettagliate su come configurare queste impostazioni, vedere configurazione formattazione file.
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

Crea un server di destinazione Azure Data Lake Storage

Quando si configura una destinazione Azure Data Lake Storage basata su file, è necessario creare un server di destinazione Azure Data Lake Storage 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":"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, impostare su FILE_BASED_ADLS_GEN2.
fileBasedAdlsGen2Destination.path.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedAdlsGen2Destination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Per informazioni dettagliate su come configurare queste impostazioni, vedere configurazione formattazione file.
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

Crea un server di destinazione Azure Blob Storage

Quando si configura una destinazione Azure Blob Storage basata su file, è necessario creare un server di destinazione Azure Blob Storage 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":"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, impostare su FILE_BASED_AZURE_BLOB.
fileBasedAzureBlobDestination.path.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedAzureBlobDestination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileBasedAzureBlobDestination.container.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedAzureBlobDestination.container.value Stringa Nome del contenitore Azure Blob Storage che deve essere utilizzato da questa destinazione.
fileConfigurations N/D Per informazioni dettagliate su come configurare queste impostazioni, vedere configurazione formattazione file.
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.
Zona di destinazione dati (DLZ)

Crea un server di destinazione Data Landing Zone (DLZ)

Quando si configura una destinazione Data Landing Zone (DLZ) basata su file, è necessario creare un server di destinazione Data Landing Zone (DLZ) 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":"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, impostare su FILE_BASED_DLZ.
fileBasedDlzDestination.path.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedDlzDestination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Per informazioni dettagliate su come configurare queste impostazioni, vedere configurazione formattazione file.
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.
Google Cloud Storage

Crea un server di destinazione Google Cloud Storage

Quando si configura una destinazione Google Cloud Storage basata su file, è necessario creare un server di destinazione Google Cloud Storage 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":"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, impostare su FILE_BASED_GOOGLE_CLOUD.
fileBasedGoogleCloudStorageDestination.bucket.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.bucket.value Stringa Nome del bucket Google Cloud Storage che deve essere utilizzato da questa destinazione.
fileBasedGoogleCloudStorageDestination.path.templatingStrategy Stringa Obbligatorio. Utilizza PEBBLE_V1.
fileBasedGoogleCloudStorageDestination.path.value Stringa Percorso della cartella di destinazione che ospiterà i file esportati.
fileConfigurations N/D Per informazioni dettagliate su come configurare queste impostazioni, vedere configurazione formattazione file.
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 un array profileFields. 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. Impostato su URL_BASED per i server dello schema dinamico.
urlBasedDestination.url.templatingStrategy Stringa

Obbligatorio.

  • Utilizza PEBBLE_V1 se Adobe deve trasformare l'URL nel campo value di seguito. Utilizzare questa opzione se si dispone 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 Experience 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, utilizzare GET.
responseFields.templatingStrategy Stringa Obbligatorio. Utilizza 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.

  • Per informazioni su come scrivere il modello, leggere la sezione Utilizzo dei modelli.
  • Per ulteriori informazioni sull'escape di caratteri, consulta lo standard JSON RFC, sezione sette.
  • Per un esempio di semplice trasformazione, fare riferimento alla trasformazione Attributi profilo.
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

Utilizza elenchi a discesa dinamici per recuperare e popolare in modo dinamico i campi dei dati cliente 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. Impostato su URL_BASED per i server a discesa dinamici.
urlBasedDestination.url.templatingStrategy Stringa

Obbligatorio.

  • Utilizza PEBBLE_V1 se Adobe deve trasformare l'URL nel campo value di seguito. Utilizzare questa opzione se si dispone 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. Inserire l'indirizzo dell'endpoint API a cui Experience 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, utilizzare GET.
httpTemplate.headers Oggetto Facoltativa.l Includere tutte le intestazioni necessarie per connettersi al server a discesa dinamico.
responseFields.templatingStrategy Stringa Obbligatorio. Utilizza 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. Consulta 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 l'endpoint API Destination SDK /authoring/destination-servers.

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