Menyiapkan respons integrasi WebSocket API di API Gateway - APIGerbang Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyiapkan respons integrasi WebSocket API di API Gateway

Ikhtisar tanggapan integrasi

Respons integrasi API Gateway adalah cara memodelkan dan memanipulasi respons dari layanan backend. Ada beberapa perbedaan dalam penyiapan REST API versus respons integrasi WebSocket API, tetapi secara konseptual perilakunya sama.

WebSocket rute dapat dikonfigurasi untuk komunikasi dua arah atau satu arah.

  • Saat rute dikonfigurasi untuk komunikasi dua arah, respons integrasi memungkinkan Anda mengonfigurasi transformasi pada muatan pesan yang dikembalikan, mirip dengan respons integrasi untuk REST API.

  • Jika rute dikonfigurasi untuk komunikasi satu arah, maka terlepas dari konfigurasi respons integrasi apa pun, tidak ada respons yang akan dikembalikan melalui WebSocket saluran setelah pesan diproses.

API Gateway tidak akan meneruskan respons backend ke respons rute, kecuali Anda menyiapkan respons rute. Untuk mempelajari cara menyiapkan respons rute, lihatSiapkan respons rute untuk WebSocket APIs di API Gateway.

Respons integrasi untuk komunikasi dua arah

Integrasi dapat dibagi menjadi integrasi proxy dan integrasi non-proxy.

penting

Untuk integrasi proxy, API Gateway secara otomatis meneruskan output backend ke pemanggil sebagai muatan lengkap. Tidak ada respon integrasi.

Untuk integrasi non-proxy, Anda harus menyiapkan setidaknya satu respons integrasi:

  • Idealnya, salah satu tanggapan integrasi Anda harus bertindak sebagai tangkapan semua ketika tidak ada pilihan eksplisit yang dapat dibuat. Kasus default ini diwakili dengan menyetel kunci respons integrasi dari$default.

  • Dalam semua kasus lain, kunci respons integrasi berfungsi sebagai ekspresi reguler. Ini harus mengikuti format"/expression/".

Untuk integrasi HTTP non-proxy:

  • API Gateway akan mencoba mencocokkan kode status HTTP dari respons backend. Tombol respons integrasi akan berfungsi sebagai ekspresi reguler dalam kasus ini. Jika kecocokan tidak dapat ditemukan, $default maka dipilih sebagai respons integrasi.

  • Ekspresi pemilihan template, seperti dijelaskan di atas, berfungsi secara identik. Sebagai contoh:

    • /2\d\d/: Menerima dan mengubah tanggapan yang berhasil

    • /4\d\d/: Menerima dan mengubah kesalahan permintaan yang buruk

    • $default: Menerima dan mengubah semua tanggapan tak terduga

Untuk informasi selengkapnya tentang ekspresi pemilihan templat, lihatEkspresi pemilihan template.

Menyiapkan respons integrasi menggunakan konsol API Gateway

Untuk menyiapkan respons integrasi rute untuk WebSocket API menggunakan konsol API Gateway:

  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih WebSocket API Anda dan pilih rute Anda.

  3. Pilih tab Permintaan integrasi, dan kemudian di bagian Pengaturan respons integrasi, pilih Buat respons integrasi.

  4. Untuk tombol Respons, masukkan nilai yang akan ditemukan di kunci respons dalam pesan keluar setelah mengevaluasi ekspresi pemilihan respons. Misalnya, Anda dapat memasukkan /4\d\d/ untuk menerima dan mengubah kesalahan permintaan buruk atau masuk $default untuk menerima dan mengubah semua respons yang cocok dengan ekspresi pemilihan templat.

  5. Untuk ekspresi pemilihan Template, masukkan ekspresi seleksi untuk mengevaluasi pesan keluar.

  6. Pilih Buat respons.

  7. Anda juga dapat menentukan template pemetaan untuk mengonfigurasi transformasi payload pesan yang dikembalikan. Pilih Buat templat.

  8. Masukkan nama kunci. Jika Anda memilih ekspresi pemilihan template default, masukkan\$default.

  9. Untuk template Response, masukkan template pemetaan Anda di editor kode.

  10. Pilih Buat templat.

  11. Pilih Deploy API untuk menerapkan API Anda.

Gunakan perintah wscat berikut untuk terhubung ke API Anda. Untuk informasi selengkapnya tentang wscat, lihat Gunakan wscat untuk terhubung ke WebSocket API dan mengirim pesan ke sana.

wscat -c wss://api-id.execute-api.us-east-2.amazonaws.com/test

Saat Anda memanggil rute Anda, muatan pesan yang dikembalikan akan kembali.

Siapkan respons integrasi menggunakan AWS CLI

Untuk menyiapkan respons integrasi untuk WebSocket API menggunakan AWS CLI panggilan create-integration-responseperintah. Perintah CLI berikut menunjukkan contoh membuat respons $default integrasi:

aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'