Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Contoh penggantian parameter permintaan dan respons API serta kode status

Mode fokus
Contoh penggantian parameter permintaan dan respons API serta kode status - Amazon API Gateway

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

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

Contoh berikut menunjukkan cara membuat dan menguji penggantian template pemetaan. Dua contoh pertama menggunakan AWS Management Console dan Example API sebagai titik awal. Dua contoh terakhir menggunakan AWS CLI dan SDK untuk JavaScript.

Ganti kode status respons API menggunakan AWS Management Console

Untuk mengambil hewan peliharaan menggunakan API PetStore sampel, Anda menggunakan permintaan metode APIGET /pets/{petId}, di mana {petId} merupakan parameter jalur yang dapat mengambil nomor pada waktu proses.

Dalam contoh ini, Anda akan mengganti kode respons GET metode ini dengan membuat template pemetaan yang $context.responseOverride.status dipetakan 400 saat kondisi kesalahan terdeteksi.

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

  2. Di bawah APIs, pilih PetStore API, lalu pilih Resources.

  3. Di pohon Resources, pilih GET metode di bawah/{petId}.

  4. Pilih tab Uji. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.

  5. Untuk PeTiD, masukkan-1, lalu pilih Test.

    Dalam hasilnya, Anda akan melihat dua hal:

    Pertama, badan Respons menunjukkan out-of-range kesalahan:

    { "errors": [ { "key": "GetPetRequest.petId", "message": "The value is out of range." } ] }

    Kedua, baris terakhir di bawah kotak Log diakhiri dengan:Method completed with status: 200.

  6. Pada tab Respons Integrasi, untuk Default - Respons, pilih Edit.

  7. Pilih template Pemetaan.

  8. Pilih Tambahkan templat pemetaan.

  9. Untuk jenis Konten, masukkanapplication/json.

  10. Untuk badan Template, masukkan yang berikut ini:

    #set($inputRoot = $input.path('$')) $input.json("$") #if($inputRoot.toString().contains("error")) #set($context.responseOverride.status = 400) #end
  11. Pilih Simpan.

  12. Pilih tab Uji.

  13. Untuk PeTiD, masukkan. -1

  14. Dalam hasilnya, Response Body menunjukkan out-of-range kesalahan:

    { "errors": [ { "key": "GetPetRequest.petId", "message": "The value is out of range." } ] }

    Namun, baris terakhir di bawah kotak Log sekarang berakhir dengan:Method completed with status: 400.

Ganti parameter permintaan API dan header menggunakan AWS Management Console

Dalam contoh ini, Anda akan mengganti kode header permintaan GET metode dengan membuat template pemetaan yang memetakan $context.requestOverride.header.header_name ke header baru yang menggabungkan dua header lainnya.

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

  2. Di bawah APIs, pilih PetStore API.

  3. Di pohon Resources, pilih GET metode di bawah/pet.

  4. Pada tab Permintaan metode, untuk pengaturan permintaan Metode, pilih Edit.

  5. Pilih header permintaan HTTP, lalu pilih Tambah header.

  6. Untuk Nama, masukkan header1.

  7. Pilih Tambahkan header, lalu buat header kedua yang disebutheader2.

  8. Pilih Simpan.

  9. Pada tab Permintaan integrasi, untuk pengaturan permintaan Integrasi, pilih Edit.

  10. Untuk Request body passthrough, pilih Bila tidak ada templat yang ditentukan (disarankan).

  11. Pilih template Pemetaan, lalu lakukan hal berikut:

    1. Pilih Tambahkan templat pemetaan.

    2. Untuk jenis Konten, masukkanapplication/json.

    3. Untuk badan Template, masukkan yang berikut ini:

      #set($header1Override = "foo") #set($header3Value = "$input.params('header1')$input.params('header2')") $input.json("$") #set($context.requestOverride.header.header3 = $header3Value) #set($context.requestOverride.header.header1 = $header1Override) #set($context.requestOverride.header.multivalueheader=[$header1Override, $header3Value])
  12. Pilih Simpan.

  13. Pilih tab Uji.

  14. Di bawah Header untuk {pets}, salin kode berikut:

    header1:header1Val header2:header2Val
  15. Pilih Uji.

    Di Log, Anda akan melihat entri yang menyertakan teks ini:

    Endpoint request headers: {header3=header1Valheader2Val, header2=header2Val, header1=foo, x-amzn-apigateway-api-id=<api-id>, Accept=application/json, multivalueheader=foo,header1Valheader2Val}

Ganti parameter permintaan API dan header menggunakan AWS CLI

Contoh CLI berikut menunjukkan cara menggunakan put-integration perintah untuk mengganti kode respons:

aws apigateway put-integration --rest-api-id <API_ID> --resource-id <PATH_TO_RESOURCE_ID> --http-method <METHOD> --type <INTEGRATION_TYPE> --request-templates <REQUEST_TEMPLATE_MAP>

di mana <REQUEST_TEMPLATE_MAP> adalah peta dari jenis konten ke string template untuk diterapkan. Struktur peta tersebut adalah sebagai berikut:

Content_type1=template_string,Content_type2=template_string

atau, dalam sintaks JSON:

{"content_type1": "template_string" ...}

Contoh berikut menunjukkan cara menggunakan put-integration-response perintah untuk mengganti kode respons API:

aws apigateway put-integration-response --rest-api-id <API_ID> --resource-id <PATH_TO_RESOURCE_ID> --http-method <METHOD> --status-code <STATUS_CODE> --response-templates <RESPONSE_TEMPLATE_MAP>

di mana <RESPONSE_TEMPLATE_MAP> memiliki format yang sama seperti <REQUEST_TEMPLATE_MAP> di atas.

Ganti parameter permintaan dan header API menggunakan SDK untuk JavaScript

Contoh berikut menunjukkan cara menggunakan put-integration perintah untuk mengganti kode respons:

Permintaan:

var params = { httpMethod: 'STRING_VALUE', /* required */ resourceId: 'STRING_VALUE', /* required */ restApiId: 'STRING_VALUE', /* required */ type: HTTP | AWS | MOCK | HTTP_PROXY | AWS_PROXY, /* required */ requestTemplates: { '<Content_type>': 'TEMPLATE_STRING', /* '<String>': ... */ }, }; apigateway.putIntegration(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response });

Tanggapan:

var params = { httpMethod: 'STRING_VALUE', /* required */ resourceId: 'STRING_VALUE', /* required */ restApiId: 'STRING_VALUE', /* required */ statusCode: 'STRING_VALUE', /* required */ responseTemplates: { '<Content_type>': 'TEMPLATE_STRING', /* '<String>': ... */ }, }; apigateway.putIntegrationResponse(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response });
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.