Menyiapkan transformasi data untuk API WebSocket - Amazon API Gateway

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

Menyiapkan transformasi data untuk API WebSocket

Di API Gateway, permintaan metode WebSocket API dapat mengambil payload dalam format yang berbeda dari payload permintaan integrasi yang sesuai, seperti yang diperlukan di backend. Demikian pula, backend dapat mengembalikan payload respons integrasi yang berbeda dari payload respons metode, seperti yang diharapkan oleh frontend.

API Gateway memungkinkan Anda menggunakan templat pemetaan untuk memetakan payload dari permintaan metode ke permintaan integrasi yang sesuai dan dari respons integrasi ke respons metode yang sesuai. Anda menentukan ekspresi pemilihan template untuk menentukan template mana yang akan digunakan untuk melakukan transformasi data yang diperlukan.

Anda dapat menggunakan pemetaan data untuk memetakan data dari permintaan rute ke integrasi backend. Untuk mempelajari selengkapnya, lihat Menyiapkan pemetaan data untuk API WebSocket .

Templat dan model pemetaan

Template pemetaan adalah skrip yang dinyatakan dalam Velocity Template Language (VTL) dan diterapkan ke payload menggunakan ekspresi JsonPath. Untuk informasi selengkapnya tentang template pemetaan API Gateway, lihatMemahami template pemetaan.

Muatan dapat memiliki model data sesuai dengan rancangan skema JSON 4. Anda tidak perlu mendefinisikan model untuk membuat template pemetaan. Namun, model dapat membantu Anda membuat template karena API Gateway menghasilkan cetak biru template berdasarkan model yang disediakan. Untuk informasi selengkapnya tentang model API Gateway, lihatMemahami model data.

Ekspresi pemilihan template

Untuk mengubah payload dengan template pemetaan, Anda menentukan ekspresi pemilihan template WebSocket API dalam permintaan integrasi atau respons integrasi. Ekspresi ini dievaluasi untuk menentukan template input atau output (jika ada) yang akan digunakan untuk mengubah badan permintaan menjadi badan permintaan integrasi (melalui template input) atau badan respons integrasi ke badan respons rute (melalui template keluaran).

Integration.TemplateSelectionExpressionmendukung ${request.body.jsonPath} dan nilai statis.

IntegrationResponse.TemplateSelectionExpressionmendukung${request.body.jsonPath},${integration.response.statuscode},${integration.response.header.headerName},${integration.response.multivalueheader.headerName}, dan nilai-nilai statis.

Ekspresi pemilihan respons integrasi

Saat menyiapkan respons integrasi untuk WebSocket API, Anda dapat menentukan ekspresi pemilihan respons integrasi secara opsional. Ekspresi ini menentukan apa yang IntegrationResponse harus dipilih ketika integrasi kembali. Nilai ekspresi ini saat ini dibatasi oleh API Gateway, seperti yang didefinisikan di bawah ini. Sadarilah bahwa ekspresi ini hanya relevan untuk integrasi non-proxy; integrasi proxy hanya meneruskan payload respons kembali ke pemanggil tanpa pemodelan atau modifikasi.

Berbeda dengan ekspresi seleksi sebelumnya lainnya, ekspresi ini saat ini mendukung format pencocokan pola. Ekspresi harus dibungkus dengan garis miring ke depan.

Saat ini nilainya tetap tergantung padaintegrationType:

  • Untuk integrasi berbasis Lambda, memang demikian. $integration.response.body.errorMessage

  • Untuk HTTP dan MOCK integrasi, itu$integration.response.statuscode.

  • Untuk HTTP_PROXY danAWS_PROXY, ungkapan tidak digunakan karena Anda meminta agar payload diteruskan ke penelepon.