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.viewerroles/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.
- Berikan peran berikut ke akun layanan yang ingin Anda gunakan untuk 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:
- Membuat variabel string untuk payload JSON
- Memetakan variabel string ke isi input konektor
- Menambahkan header Content-Type kustom
- Jalankan tugas HTTP Connectors
Buat variabel string untuk payload JSON
- Di konsol Google Cloud , buka halaman Application Integration.
- Di menu navigasi, klik Integrasi.
- 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.
- Di editor integrasi, klik Buat untuk membuka dialog Buat variabel.
- Dalam dialog Buat variabel:
- Masukkan informasi berikut:
- Nama: Masukkan nama, misalnya,
jsonPayloadString. - Jenis Data: Pilih String.
- 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.
- Nama: Masukkan nama, misalnya,
- Klik Buat.
Untuk mengetahui informasi selengkapnya tentang cara membuat dan menggunakan variabel, lihat Variabel.
- Masukkan informasi berikut:
Memetakan variabel string ke isi input konektor
Di Editor Transformator Data, petakan variabel jsonPayloadString ke kolom connectorInputPayload.Body.
- Dalam integrasi Anda, tambahkan tugas Data Transformer.
- Buka Editor Pengubah Data. Anda dapat menggunakan Mode diagram atau Mode skrip.
- Untuk memetakan variabel:
- Mode diagram: Tambahkan
jsonPayloadStringsebagai input dan petakan ke kolom output connectorInputPayload.Body. - Mode skrip: Tulis kode Jsonnet untuk menetapkan nilai:
connectorInputPayload.Body = vars.jsonPayloadString;.
- Mode diagram: Tambahkan
Menambahkan header Content-Type kustom
- 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" };
- Mode diagram: Tambahkan input konstan dengan nilai
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.