Menyiapkan pemetaan data permintaan dan respons menggunakan konsol API Gateway - Amazon API Gateway

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

Menyiapkan pemetaan data permintaan dan respons menggunakan konsol API Gateway

Untuk menggunakan konsol API Gateway untuk menentukan permintaan/respons integrasi API, ikuti petunjuk berikut.

catatan

Instruksi ini mengasumsikan Anda telah menyelesaikan langkah-langkahnyaMenyiapkan permintaan integrasi API menggunakan konsol API Gateway.

  1. Di panel Resources, pilih metode Anda.

  2. Pada tab Permintaan integrasi, di bawah Pengaturan permintaan integrasi, pilih Edit.

  3. Pilih opsi untuk Request body passthrough untuk mengonfigurasi bagaimana badan permintaan metode dari jenis konten yang tidak dipetakan akan diteruskan melalui permintaan integrasi tanpa transformasi ke fungsi Lambda, proxy HTTP, atau proxy layanan. AWS Ada tiga opsi:

    • Pilih Bila tidak ada templat yang cocok dengan header tipe konten permintaan jika Anda ingin badan permintaan metode melewati permintaan integrasi ke backend tanpa transformasi saat jenis konten permintaan metode tidak cocok dengan jenis konten apa pun yang terkait dengan templat pemetaan, seperti yang ditentukan pada langkah berikutnya.

      catatan

      Saat memanggil API Gateway API, Anda memilih opsi ini dengan menetapkan WHEN_NO_MATCH sebagai nilai passthroughBehavior properti pada sumber daya Integrasi.

    • Pilih Ketika tidak ada templat yang ditentukan (disarankan) jika Anda ingin badan permintaan metode melewati permintaan integrasi ke backend tanpa transformasi ketika tidak ada templat pemetaan yang ditentukan dalam permintaan integrasi. Jika templat ditentukan saat opsi ini dipilih, permintaan metode dari jenis konten yang tidak dipetakan akan ditolak dengan respons Jenis Media Tidak Didukung HTTP 415.

      catatan

      Saat memanggil API Gateway API, Anda memilih opsi ini dengan menetapkan WHEN_NO_TEMPLATE sebagai nilai passthroughBehavior properti pada sumber daya Integrasi.

    • Pilih Jangan Pernah jika Anda tidak ingin permintaan metode terlewati saat jenis konten permintaan metode tidak cocok dengan jenis konten apa pun yang terkait dengan templat pemetaan yang ditentukan dalam permintaan integrasi atau tidak ada templat pemetaan yang ditentukan dalam permintaan integrasi. Permintaan metode dari jenis konten yang tidak dipetakan akan ditolak dengan respons Jenis Media Tidak Didukung HTTP 415.

      catatan

      Saat memanggil API Gateway API, Anda memilih opsi ini dengan menetapkan NEVER sebagai nilai passthroughBehavior properti pada sumber daya Integrasi.

    Untuk informasi selengkapnya tentang perilaku passthrough integrasi, lihatPerilaku passthrough integrasi.

  4. Untuk proxy HTTP atau proxy AWS layanan, untuk mengaitkan parameter jalur, parameter string kueri, atau parameter header yang ditentukan dalam permintaan integrasi dengan parameter jalur yang sesuai, parameter string kueri, atau parameter header dalam permintaan metode proxy HTTP atau proxy AWS layanan, lakukan hal berikut:

    1. Pilih parameter jalur URL, parameter string kueri URL, atau header permintaan HTTP masing-masing, lalu pilih Tambah jalur, Tambahkan string kueri, atau Tambahkan header, masing-masing.

    2. Untuk Nama, ketik nama parameter jalur, parameter string kueri, atau parameter header di proxy HTTP atau proxy AWS layanan.

    3. Untuk Dipetakan dari, masukkan nilai pemetaan untuk parameter jalur, parameter string kueri, atau parameter header. Gunakan salah satu format berikut:

      • method.request.path.parameter-nameuntuk parameter jalur bernama parameter-name seperti yang didefinisikan dalam halaman permintaan Metode.

      • method.request.querystring.parameter-nameuntuk parameter string kueri bernama parameter-name seperti yang didefinisikan dalam halaman permintaan Metode.

      • method.request.multivaluequerystring.parameter-nameuntuk parameter string kueri multi-nilai bernama parameter-name seperti yang didefinisikan dalam halaman permintaan Metode.

      • method.request.header.parameter-nameuntuk parameter header bernama parameter-name seperti yang didefinisikan dalam halaman permintaan Metode.

        Atau, Anda dapat mengatur nilai string literal (tertutup oleh sepasang tanda kutip tunggal) ke header integrasi.

      • method.request.multivalueheader.parameter-nameuntuk parameter header multi-nilai bernama parameter-name seperti yang didefinisikan dalam halaman permintaan Metode.

    4. Untuk menambahkan parameter lain, pilih tombol Tambah.

  5. Untuk menambahkan templat pemetaan, pilih Template pemetaan.

  6. Untuk menentukan template pemetaan untuk permintaan masuk, pilih Tambahkan templat pemetaan. Untuk jenis Konten, masukkan jenis konten (mis.,application/json). Kemudian, masukkan template pemetaan. Untuk informasi selengkapnya, lihat Templat pemetaan untuk REST API.

  7. Pilih Simpan.

  8. Anda dapat memetakan respons integrasi dari backend ke respons metode API yang dikembalikan ke aplikasi pemanggilan. Ini termasuk mengembalikan header respons yang dipilih klien dari yang tersedia dari backend, mengubah format data payload respons backend ke format yang ditentukan API. Anda dapat menentukan pemetaan tersebut dengan mengonfigurasi respons Metode dan tanggapan Integrasi.

    Agar metode menerima format data respons khusus berdasarkan kode status HTTP yang dikembalikan oleh fungsi Lambda, proxy HTTP, atau proxy AWS layanan, lakukan hal berikut:

    1. Pilih tanggapan Integrasi. Pilih salah satu Edit pada Default - Respons, untuk menentukan pengaturan untuk 200 kode respons HTTP dari metode, atau pilih Buat respons untuk menentukan pengaturan untuk kode status respons HTTP lainnya dari metode.

    2. Untuk regex kesalahan Lambda (untuk fungsi Lambda) atau regex status HTTP (untuk proxy HTTP atau proxy AWS layanan), masukkan ekspresi reguler untuk menentukan string kesalahan fungsi Lambda mana (untuk fungsi Lambda) atau kode status respons HTTP (untuk proxy HTTP atau proxy layanan) peta ke pemetaan keluaran ini. AWS Misalnya, untuk memetakan semua kode status respons HTTP 2xx dari proxy HTTP ke pemetaan keluaran ini, ketik "2\d{2}" untuk regex status HTTP. Untuk mengembalikan pesan kesalahan yang berisi “Permintaan Tidak Valid” dari fungsi Lambda ke 400 Bad Request respons, masukkan "" .*Invalid request.* sebagai ekspresi regex kesalahan Lambda. Di sisi lain, 400 Bad Request untuk mengembalikan semua pesan kesalahan yang belum dipetakan dari Lambda, masukkan "" (\n|.)+ di Lambda error regex. Ekspresi reguler terakhir ini dapat digunakan untuk respons kesalahan default API.

      catatan

      API Gateway menggunakan regex gaya pola Java untuk pemetaan respons. Untuk informasi selengkapnya, lihat Pola dalam Oracle dokumentasi.

      Pola kesalahan dicocokkan dengan seluruh string errorMessage properti dalam respons Lambda, yang diisi callback(errorMessage) oleh di Node.js atau throw new MyException(errorMessage) oleh di Java. Selain itu, karakter yang lolos tidak dapat diloloskan sebelum ekspresi reguler diterapkan.

      Jika Anda menggunakan '.+' sebagai pola pemilihan untuk memfilter respons, ketahuilah bahwa itu mungkin tidak cocok dengan respons yang berisi karakter baris baru ('\n').

    3. Jika diaktifkan, untuk status respons Metode, pilih kode status respons HTTP yang Anda tentukan di halaman respons Metode.

    4. Untuk pemetaan Header, untuk setiap header yang Anda tentukan untuk kode status respons HTTP pada halaman respons Metode, tentukan nilai pemetaan. Untuk nilai Pemetaan, gunakan salah satu format berikut:

      • integration.response.multivalueheaders.header-namedi mana header-name adalah nama header respons multi-nilai dari backend.

        Misalnya, untuk mengembalikan header respons backend sebagai Date header respons metode API, kolom header Response akan berisi entri Timestamp, dan nilai Pemetaan terkait harus disetel ke Integration.response.MultivalueHeaders.date. Timestamp

      • integration.response.header.header-namedi mana header-name adalah nama header respons bernilai tunggal dari backend.

        Misalnya, untuk mengembalikan header respons backend sebagai Date header respons metode API, kolom header Response akan berisi entri Timestamp, dan nilai Pemetaan terkait harus disetel ke Integration.response.Header.date. Timestamp

    5. Pilih Templat pemetaan, lalu pilih Tambahkan templat pemetaan. Di kotak Jenis konten, masukkan tipe konten data yang akan diteruskan dari fungsi Lambda, proxy HTTP, atau proxy AWS layanan ke metode. Kemudian, masukkan template pemetaan. Untuk informasi selengkapnya, lihat Templat pemetaan untuk REST API.

    6. Pilih Simpan.