Coba integrasi sampel
Saat menyiapkan Integrasi Aplikasi di project Google Cloud untuk pertama kalinya, Integrasi Aplikasi secara default membuat contoh integrasi yang belum dipublikasikan bernama ExampleIntegration-EcomOrderProcessing.
Melihat contoh integrasi
Untuk melihat contoh integrasi, lakukan hal berikut:
- Di konsol Google Cloud, buka halaman Application Integration.
- Klik Integrasi dari menu navigasi kiri untuk membuka halaman Integrasi.
- Klik integrasi bernama ExampleIntegration-EcomOrderProcessing.
Integrasi contoh akan terbuka di editor integrasi yang mirip dengan tata letak berikut:
Integrasi contoh e-commerce
Anda dapat menggunakan integrasi contoh ini untuk mendapatkan pengalaman langsung tentang berbagai pemicu, tugas, dan konsep Application Integration.
Integrasi sampel menggambarkan skenario backend e-commerce dasar yang menerapkan operasi pemrosesan pesanan berikut:
- Menerima payload permintaan pesanan berikut dari endpoint API:
{ "order_no": "12345", "buyer_id": "raambo", "line_items": [ { "line": 1, "sku": "tr100", "vendor": "Internal", "quantity": 1, "price_per_unit": 10 }, { "line": 2, "sku": "tbz", "vendor": "External", "quantity": 24.0, "price_per_unit": 1 } ] }
- Ekstrak payload pesanan dan hitung total nilai pesanan.
- Periksa apakah total nilai pesanan lebih besar dari atau sama dengan $100. Jika ya, dapatkan persetujuan tambahan untuk melanjutkan.
- Periksa apakah ada item pesanan yang memiliki vendor eksternal. Jika ya, kirim detailnya ke vendor menggunakan panggilan REST API.
- Kirim respons pesanan dengan total nilai pesanan, item vendor eksternal yang difilter, dan status respons HTTP masing-masing.
Tabel berikut mencantumkan semua pemicu, tugas, dan kondisi edge yang digunakan dalam ExampleIntegration-EcomOrderProcessing:
| Komponen | Konfigurasi | Deskripsi | |
|---|---|---|---|
| Pemicu API
(OrderProcessAPITrigger) |
ID Pemicu: api_trigger/ecom-order-processing_API_1
|
Memanggil integrasi untuk setiap permintaan pesanan. | |
| Tugas pemetaan data
(Temukan Total Harga Pesanan) |
Input | Output | Mengekstrak variabel input JSON order_request dan melakukan iterasi pada semua item pesanan menggunakan fungsi pemetaan FOR_EACH untuk menghitung nilai harga total pesanan.
Nilai harga total pesanan dihitung dengan mengalikan
Nilai akhir kemudian dikonversi ke jenis data ganda dan disimpan dalam variabel output |
orders_request.line_items .FOR_EACH(~obj1->~obj1 .GET_PROPERTY("quantity") .TO_DOUBLE() .MULTIPLY(~obj1 .GET_PROPERTY("price_per_unit") .TO_DOUBLE())) .TO_DOUBLE_ARRAY() .SUM() |
total_order_value
|
||
| Kondisi tepi
(Total Nilai Pesanan di Atas Nilai Minimum) |
Kondisi: $total_order_value$ >= $threshold_order_value$ |
Memeriksa apakah total nilai pesanan lebih besar dari atau sama dengan $100. Jika ya, kontrol akan diteruskan ke tugas Persetujuan. | |
| Kondisi tepi
(TotalOrderValue Di Bawah Nilai Minimum) |
Kondisi: $total_order_value$ < $threshold_order_value$
|
Memeriksa apakah total nilai pesanan kurang dari $100. Jika ya, kontrol akan diteruskan ke tugas Filter Item Eksternal. | |
| Tugas persetujuan
(Persetujuan) |
Penerima: Enter the approver's email address Untuk tujuan menguji integrasi contoh ini, Anda dapat menggunakan email Anda untuk mengonfirmasi keberhasilan penyelesaian integrasi. |
Mengirim email permintaan persetujuan kepada satu atau beberapa pengguna integrasi. Email tersebut menyertakan link ke integrasi tempat pengguna dapat menyetujui atau menolak permintaan secara manual. | |
| Tugas pemetaan data
(Filter Item Eksternal) |
Input | Output | Mengekstrak variabel input JSON order_request dan memfilter semua item pesanan dengan vendor eksternal menggunakan fungsi pemetaan FILTER.
Nilai yang difilter kemudian disimpan dalam variabel output |
orders_request .GET_PROPERTY("line_items") .FILTER(~obj1->~obj1 .GET_PROPERTY("vendor") .TO_STRING() .EQUALS("External")) |
filtered_external_items
|
||
| Tugas For Each Loop
(Loop For Each) |
Daftar yang akan diiterasi: filtered_external_items
ID Pemicu API:
Nama integrasi: |
Melakukan iterasi pada variabel filtered_external_items dan memanggil sub-integrasi untuk setiap elemen dalam array. Respons setiap eksekusi juga disatukan dalam rest_call_response_status, dengan setiap elemen array memiliki respons dari satu eksekusi tertentu.
|
|
| Pemicu API
(Report ExternalOrders) |
ID Pemicu: api_trigger/ecom-order-processing_API_2
|
Memanggil sub-integrasi untuk setiap elemen di filtered_external_items. | |
| Tugas Call REST Endpoint
(Call REST Endpoint) |
URL dasar endpoint: https://mocktarget.apigee.net/echo
Metode HTTP:
Isi permintaan: |
Melakukan panggilan REST ke https://mocktarget.apigee.net/echo. | |
Memublikasikan dan menguji integrasi contoh
Untuk memublikasikan integrasi, klik Publikasikan di toolbar editor integrasi.
Setelah berhasil memublikasikan integrasi, Anda dapat melihat dan memeriksa log eksekusi integrasi yang dipublikasikan. Untuk melihat log, klik
Lihat log eksekusi untuk integrasi ini. Halaman Execution Logs akan muncul.
Menguji dari editor integrasi
Lakukan hal berikut untuk menguji integrasi sampel:
- Klik Uji di toolbar editor integrasi, lalu pilih OrderProcessAPITrigger.
Panel Test Integration akan muncul.
- Anda akan diminta untuk mengedit variabel input
orders_request. Untuk tujuan pengujian ini, Anda dapat memperbarui nilaiquantitymenjadi240. Variabel inputorders_requestyang diperbarui akan terlihat seperti berikut:{ "order_no": "12345", "buyer_id": "raambo", "line_items": [ { "line": 1, "sku": "tr100", "vendor": "Internal", "quantity": 1, "price_per_unit": 10 }, { "line": 2, "sku": "tbz", "vendor": "External", "quantity": 240, "price_per_unit": 1 } ] }
- Klik Uji integrasi.
Karena jumlah orders_request yang diperbarui lebih besar dari 200, integrasi contoh akan mengirim email permintaan persetujuan ke alamat email yang ditentukan di kolom Penerima pada Tugas persetujuan. Operasi pesanan integrasi akan berhasil diselesaikan setelah persetujuan diterima.
Untuk mengetahui informasi selengkapnya tentang pengujian, lihat Menguji dan memublikasikan integrasi.
Lakukan hal berikut untuk memeriksa log eksekusi dan melihat status serta payload integrasi tertentu:
- Di editor integrasi, klik
Lihat log eksekusi untuk integrasi ini. Halaman Execution Logs akan muncul. - Di halaman Log Eksekusi, Anda dapat melihat detail tentang setiap upaya untuk menjalankan integrasi.
Setiap entri mencakup detail untuk upaya eksekusi, termasuk:
- Nama integrasi
- ID eksekusi
- Status
- Waktu mulai
- Durasi
- Versi Integrasi
- ID Pemicu
- Klik panah peluas (>) di samping integrasi yang dijalankan untuk melihat daftar tugas dan variabel yang diperluas dalam integrasi, beserta status tugas dan payload variabel.
Menguji menggunakan panggilan REST API
Kasus pengujian 1: Mengirim permintaan dengan input default
curl -X POST -H "Content-Type: application/json" -d '{"trigger_id":"api_trigger/ecom-order-processing_API_1"}' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"
Kasus pengujian 2: Mengirim permintaan dengan input kustom
curl -X POST -H "Content-Type: application/json" -d '{ "triggerId": "api_trigger/ecom-order-processing_API_1", "inputParameters": { "orders_request": { "jsonValue": "{\n \"order_no\": \"12345\",\n \"buyer_id\": \"raambo\",\n \"line_items\": [{\n \"line\": 1.0,\n \"sku\": \"tr100\",\n \"vendor\": \"Internal\",\n \"quantity\": 1.0,\n \"price_per_unit\": 10.0\n }, {\n \"line\": 2.0,\n \"sku\": \"tbz\",\n \"vendor\": \"External\",\n \"quantity\": 24.0,\n \"price_per_unit\": 2.0\n }]\n}" } } }' 'https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME:execute' -H "Authorization: Bearer $(gcloud auth print-access-token)"
Ganti kode berikut:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Lokasi integrasi. Lihat Lokasi Integrasi Aplikasi.
- INTEGRATION_NAME: Nama integrasi.
Output pengujian
API menampilkan respons eksekusi integrasi yang berisi semua nilai variabel output integrasi.
Kuota dan batas
Untuk mengetahui informasi tentang kuota dan batas, lihat Kuota dan batas.