Menangani payload JSON sebagai string dalam tugas HTTP Connector

Dalam tutorial ini, Anda akan mempelajari cara menangani payload JSON saat menggunakan tugas Konektor HTTP di Integrasi Aplikasi.

Memperlakukan payload secara tidak benar dapat menyebabkan API salah menafsirkannya, sehingga menghasilkan error 400 Bad Request. Untuk memastikan API menerima dan mengurai payload JSON Anda dengan benar, perlakukan payload JSON sebagai string dan tetapkan header Content-Type secara eksplisit ke application/json.

Sebelum memulai

  • Pastikan Anda dapat mengakses Application Integration.
  • Pilih project Google Cloud Anda dan selesaikan tugas-tugas berikut:

    • Berikan peran berikut ke akun layanan yang ingin Anda gunakan untuk membuat koneksi:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • Aktifkan layanan berikut:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (Connectors API)

      Jika Anda belum mengaktifkan layanan ini untuk project Anda, halaman Create Connection akan meminta Anda untuk mengaktifkannya saat Anda membuat koneksi.

  • Tambahkan dan konfigurasi tugas HTTP Connectors.
  • Tambahkan dan konfigurasi tugas Data Transformer untuk menyiapkan payload dan header JSON.

Menangani payload JSON sebagai string

Untuk menangani payload JSON yang berisi karakter khusus saat Anda menggunakan tugas Konektor HTTP, selesaikan langkah-langkah berikut:

Buat variabel string untuk payload JSON

  1. Di konsol Google Cloud , buka halaman Application Integration.

    Buka Application Integration

  2. Di menu navigasi, klik Integrasi.
  3. Pilih integrasi yang ada atau buat integrasi baru. Pastikan integrasi Anda menyertakan tugas Konektor HTTP dan Pengubah Data yang dikonfigurasi seperti yang dijelaskan di bagian Sebelum Anda memulai.
  4. Di editor integrasi, klik Buat untuk membuka dialog Buat variabel.
  5. Dalam dialog Buat variabel:
    1. Masukkan informasi berikut:
      1. Nama: Masukkan nama, misalnya, jsonPayloadString.
      2. Jenis Data: Pilih String.
      3. Nilai Default:
        • Jika payload JSON diisi oleh tugas sebelumnya dalam alur integrasi, misalnya, tugas Data Transformer lain, biarkan kolom ini kosong. Variabel akan diisi secara dinamis berdasarkan output tugas sebelumnya dalam integrasi.
        • Jika payload JSON tidak diisi oleh tugas sebelumnya, Anda harus memberikan payload JSON default statis. Masukkan struktur JSON sebagai satu string dalam kolom ini.

          Berikut dua contoh cara memasukkan string JSON di kolom Nilai Default:

          Tanpa karakter khusus: Untuk merepresentasikan {"name": "Developer", "key": "test"} JSON, masukkan persis: { "name": "Developer", "key": "test" }.

          Dengan karakter khusus: Jika JSON Anda berisi karakter khusus seperti baris baru (\n), Anda harus meng-escape-nya. Misalnya, untuk merepresentasikan JSON {"key": "value1\nvalue2"}, masukkan {"key": "value1\\nvalue2"} di kolom.

    2. Klik Buat.
    Buat variabel string untuk payload JSON
  6. Untuk mengetahui informasi selengkapnya tentang cara membuat dan menggunakan variabel, lihat Variabel.

Memetakan variabel string ke isi input konektor

Di Editor Transformator Data, petakan variabel jsonPayloadString ke kolom connectorInputPayload.Body.

  1. Dalam integrasi Anda, tambahkan tugas Data Transformer.
  2. Buka Editor Pengubah Data. Anda dapat menggunakan Mode diagram atau Mode skrip.
  3. Untuk memetakan variabel:
    • Mode diagram: Tambahkan jsonPayloadString sebagai input dan petakan ke kolom output connectorInputPayload.Body.
    • Mode skrip: Tulis kode Jsonnet untuk menetapkan nilai: connectorInputPayload.Body = vars.jsonPayloadString;.

Menambahkan header Content-Type kustom

  1. Di Editor Pengubah Data, tambahkan pemetaan untuk header kustom ke kolom connectorInputPayload.Headers.
    • Mode diagram: Tambahkan input konstan dengan nilai {"Content-Type": "application/json"} dan petakan ke connectorInputPayload.Headers.
    • Mode skrip: Tambahkan Jsonnet berikut untuk menyetel header:
      connectorInputPayload.Headers = {
        "Content-Type": "application/json"
      };
              

Menjalankan tugas HTTP Connectors

Sebelum menjalankan integrasi, verifikasi bahwa connectorInputPayload.Body diisi oleh variabel jsonPayloadString dan connectorInputPayload.Headers menyertakan header Content-Type: application/json. Penyiapan ini memastikan tugas Konektor HTTP mengirimkan payload JSON sebagai string dengan Content-Type yang benar dalam tugas Pengubah Data.

Jalankan integrasi Anda untuk menguji permintaan API. Jika API menampilkan error 400 Bad Request, verifikasi pemetaan untuk connectorInputPayload.Body dan connectorInputPayload.Headers lagi dalam tugas Data Transformer.

Langkah berikutnya

Coba buat integrasi dengan konektor lain. Untuk mengetahui daftar semua konektor yang didukung, lihat Referensi konektor.