Siapkan respons metode 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.

Siapkan respons metode di API Gateway

Respons metode API merangkum output dari permintaan metode API yang akan diterima klien. Data output mencakup kode status HTTP, beberapa header, dan mungkin badan.

Dengan integrasi non-proxy, parameter dan badan respons yang ditentukan dapat dipetakan dari data respons integrasi terkait atau dapat diberikan nilai statis tertentu sesuai dengan pemetaan. Pemetaan ini ditentukan dalam respons integrasi. Pemetaan dapat menjadi transformasi identik yang melewati respons integrasi melalui apa adanya.

Dengan integrasi proxy, API Gateway meneruskan respons backend ke respons metode secara otomatis. Anda tidak perlu menyiapkan respons metode API. Namun, dengan integrasi proxy Lambda, fungsi Lambda harus mengembalikan hasil format keluaran ini agar API Gateway berhasil memetakan respons integrasi ke respons metode.

Secara terprogram, pengaturan respons metode sama dengan membuat MethodResponsesumber daya API Gateway dan menyetel properti StatusCode, ResponseParameters, dan ResponseModels.

Saat menyetel kode status untuk metode API, Anda harus memilih salah satu sebagai default untuk menangani respons integrasi kode status yang tidak terduga. Masuk akal untuk ditetapkan 500 sebagai default karena ini sama dengan mentransmisikan respons yang tidak dipetakan sebagai kesalahan sisi server. Untuk alasan instruksional, konsol API Gateway menetapkan 200 respons sebagai default. Tetapi Anda dapat mengatur ulang ke 500 respons.

Untuk mengatur respons metode, Anda harus membuat permintaan metode.

Mengatur kode status respons metode

Kode status respons metode mendefinisikan jenis respons. Misalnya, tanggapan 200, 400, dan 500 menunjukkan keberhasilan, kesalahan sisi klien dan respons kesalahan sisi server, masing-masing.

Untuk menyiapkan kode status respons metode, setel statusCodeproperti ke kode status HTTP. AWS CLI Perintah berikut menciptakan respon metode200.

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200

Siapkan parameter respons metode

Parameter respons metode menentukan header mana yang diterima klien sebagai respons terhadap permintaan metode terkait. Parameter respons juga menentukan target yang API Gateway memetakan parameter respons integrasi, sesuai dengan pemetaan yang ditentukan dalam respons integrasi metode API.

Untuk mengatur parameter respons metode, tambahkan ke responseParameterspeta pasangan MethodResponse kunci-nilai format. "{parameter-name}":"{boolean}" Perintah CLI berikut menunjukkan contoh pengaturan header. my-header

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --response-parameters method.response.header.my-header=false

Siapkan model respons metode

Model respons metode mendefinisikan format badan respons metode. Sebelum menyiapkan model respons, Anda harus terlebih dahulu membuat model di API Gateway. Untuk melakukannya, Anda dapat memanggil create-model perintah. Contoh berikut menunjukkan cara membuat PetStorePet model untuk menggambarkan tubuh respons terhadap permintaan GET /pets/{petId} metode.

aws apigateway create-model \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --content-type application/json \ --name PetStorePet \ --schema '{ \ "$schema": "http://json-schema.org/draft-04/schema#", \ "title": "PetStorePet", \ "type": "object", \ "properties": { \ "id": { "type": "number" }, \ "type": { "type": "string" }, \ "price": { "type": "number" } \ } \ }'

Hasilnya dibuat sebagai Modelsumber daya API Gateway.

Untuk mengatur model respons metode untuk menentukan format payload, tambahkan pasangan nilai kunci “application/json”:”PetStorePet” ke peta sumber daya. requestModelsMethodResponse AWS CLI Perintah berikut put-method-response menunjukkan bagaimana hal ini dilakukan:

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --response-parameters method.response.header.my-header=false \ --response-models '{"application/json":"PetStorePet"}'

Menyiapkan model respons metode diperlukan saat Anda membuat SDK yang diketik kuat untuk API. Ini memastikan bahwa output dilemparkan ke kelas yang sesuai di Java atau Objective-C. Dalam kasus lain, pengaturan model adalah opsional.