Gestire i payload JSON come stringhe nell'attività Connettori HTTP

In questo tutorial, imparerai a gestire i payload JSON quando utilizzi un'attività Connettori HTTP in Application Integration.

Se il payload viene trattato in modo errato, le API potrebbero interpretarlo in modo errato, causando errori 400 Bad Request. Per assicurarti che le API ricevano e analizzino correttamente il payload JSON, considera il payload JSON come una stringa e imposta esplicitamente l'intestazione Content-Type su application/json.

Prima di iniziare

  • Verifica di poter accedere a Application Integration.
  • Seleziona il tuo progetto Google Cloud e completa le seguenti attività:

    • Concedi i seguenti ruoli al account di servizio che vuoi utilizzare per creare la connessione:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • Attiva i seguenti servizi:
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Se non hai attivato questi servizi per il tuo progetto, la pagina Crea connessione ti chiede di attivarli quando crei la connessione.

  • Aggiungi e configura un'attività Connettori HTTP.
  • Aggiungi e configura l'attività Data Transformer per preparare il payload e le intestazioni JSON.

Gestire i payload JSON come stringhe

Per gestire i payload JSON che contengono caratteri speciali quando utilizzi un'attività Connettori HTTP, completa i seguenti passaggi:

Crea una variabile stringa per il payload JSON

  1. Nella console Google Cloud , vai alla pagina Integrazione di applicazioni.

    Vai ad Application Integration

  2. Nel menu di navigazione, fai clic su Integrazioni.
  3. Seleziona un'integrazione esistente o creane una nuova. Assicurati che l'integrazione includa le attività Connettori HTTP e Data Transformer configurate, come descritto nella sezione Prima di iniziare.
  4. Nell'editor dell'integrazione, fai clic su Crea per aprire la finestra di dialogo Crea variabile.
  5. Nella finestra di dialogo Crea variabile:
    1. Inserisci le seguenti informazioni:
      1. Nome:inserisci un nome, ad esempio jsonPayloadString.
      2. Tipo di dati: seleziona Stringa.
      3. Valore predefinito:
        • Se il payload JSON viene compilato da un'attività precedente nel flusso di integrazione, ad esempio un'altra attività Data Transformer, lascia vuoto questo campo. La variabile verrà compilata dinamicamente in base all'output delle attività precedenti nell'integrazione.
        • Se il payload JSON non viene compilato da un'attività precedente, devi fornire un payload JSON predefinito statico. Inserisci la struttura JSON come singola stringa in questo campo.

          Di seguito sono riportati due esempi di come inserire stringhe JSON nel campo Valore predefinito:

          Senza caratteri speciali: per rappresentare il JSON {"name": "Developer", "key": "test"}, inserisci esattamente: { "name": "Developer", "key": "test" }.

          Con caratteri speciali: quando il file JSON contiene caratteri speciali come il carattere di nuova riga (\n), devi utilizzare il codice di escape. Ad esempio, per rappresentare il JSON {"key": "value1\nvalue2"}, inserisci {"key": "value1\\nvalue2"} nel campo.

    2. Fai clic su Crea.
    Crea una variabile stringa per il payload JSON
  6. Per ulteriori informazioni sulla creazione e sull'utilizzo delle variabili, consulta la sezione Variabili.

Mappa la variabile stringa al corpo dell'input del connettore

Nell'editor di Data Transformer, mappa la variabile jsonPayloadString al campo connectorInputPayload.Body.

  1. Nell'integrazione, aggiungi un'attività di trasformazione dei dati.
  2. Apri l'editor di Data Transformer. Puoi utilizzare la modalità Diagramma o la modalità Script.
  3. Per mappare la variabile:
    • Modalità diagramma:aggiungi jsonPayloadString come input e mappalo al campo di output connectorInputPayload.Body.
    • Modalità script:scrivi il codice Jsonnet per assegnare il valore: connectorInputPayload.Body = vars.jsonPayloadString;.

Aggiungere un'intestazione Content-Type personalizzata

  1. Nell'editor di Data Transformer, aggiungi una mappatura per le intestazioni personalizzate al campo connectorInputPayload.Headers.
    • Modalità Diagramma:aggiungi un input costante con il valore {"Content-Type": "application/json"} e mappalo a connectorInputPayload.Headers.
    • Modalità script:aggiungi il seguente Jsonnet per impostare l'intestazione:
      connectorInputPayload.Headers = {
        "Content-Type": "application/json"
      };
              

Esegui l'attività Connettori HTTP

Prima di eseguire l'integrazione, verifica che connectorInputPayload.Body sia compilato con la variabile jsonPayloadString e che connectorInputPayload.Headers includa l'intestazione Content-Type: application/json. Questa configurazione garantisce che l'attività Connettori HTTP invii il payload JSON come stringa con il valore Content-Type corretto nell'attività Data Transformer.

Esegui l'integrazione per testare la richiesta API. Se l'API restituisce un errore 400 Bad Request, verifica di nuovo i mapping per connectorInputPayload.Body e connectorInputPayload.Headers nell'attività Data Transformer.

Passaggi successivi

Prova a creare integrazioni con altri connettori. Per un elenco di tutti i connettori supportati, consulta Riferimento ai connettori.