Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat mengonfigurasi API Gateway untuk melakukan validasi pada permintaan rute sebelum melanjutkan dengan permintaan integrasi. Jika validasi gagal, API Gateway gagal permintaan tanpa memanggil backend Anda, mengirimkan respons gateway “Badan permintaan buruk” ke klien, dan menerbitkan hasil validasi di Log. CloudWatch Menggunakan validasi dengan cara ini mengurangi panggilan yang tidak perlu ke backend API Anda.
Ekspresi pemilihan model
Anda dapat menggunakan ekspresi pemilihan model untuk memvalidasi permintaan secara dinamis dalam rute yang sama. Validasi model terjadi jika Anda memberikan ekspresi pemilihan model untuk integrasi proxy atau non-proxy. Anda mungkin perlu mendefinisikan $default
model sebagai fallback ketika tidak ada model yang cocok ditemukan. Jika tidak ada model yang cocok dan $default
tidak ditentukan, validasi gagal. Ekspresi seleksi terlihat seperti Route.ModelSelectionExpression
dan mengevaluasi kunci untukRoute.RequestModels
.
Saat menentukan rute untuk WebSocket API, Anda dapat menentukan ekspresi pemilihan model secara opsional. Ekspresi ini dievaluasi untuk memilih model yang akan digunakan untuk validasi tubuh ketika permintaan diterima. Ekspresi mengevaluasi ke salah satu entri dalam rute. requestmodels
Sebuah model dinyatakan sebagai skema JSON
Menyiapkan validasi permintaan menggunakan konsol API Gateway
Contoh berikut menunjukkan cara mengatur validasi permintaan pada rute.
Pertama, Anda membuat model, dan kemudian Anda membuat rute. Selanjutnya, Anda mengonfigurasi validasi permintaan pada rute yang baru saja Anda buat. Terakhir, Anda menerapkan dan menguji API Anda. Untuk menyelesaikan tutorial ini, Anda memerlukan WebSocket API dengan $request.body.action
ekspresi pemilihan rute dan titik akhir integrasi untuk rute baru Anda.
Anda juga wscat
perlu terhubung ke API Anda. Untuk informasi selengkapnya, lihat Gunakan wscat untuk terhubung ke WebSocket API dan mengirim pesan ke sana.
Untuk membuat model
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway
. Pilih WebSocket API.
Di panel navigasi utama, pilih Model.
Pilih Buat model.
Untuk Nama, masukkan
emailModel
.Untuk jenis Konten, masukkan
application/json
.Untuk skema Model, masukkan model berikut:
{ "$schema": "http://json-schema.org/draft-04/schema#", "type" : "object", "required" : [ "address"], "properties" : { "address": { "type": "string" } } }
Model ini mengharuskan permintaan berisi alamat email.
Pilih Simpan.
Pada langkah ini, Anda membuat rute untuk WebSocket API Anda.
Untuk membuat rute
Di panel navigasi utama, pilih Rute.
Pilih Buat rute.
Untuk kunci Rute, masukkan
sendMessage
.Pilih jenis integrasi dan tentukan titik akhir integrasi. Untuk mengetahui informasi selengkapnya, lihat Integrasi untuk WebSocket APIs di API Gateway.
Pilih Buat rute.
Pada langkah ini, Anda menyiapkan validasi permintaan untuk sendMessage
rute tersebut.
Untuk mengatur validasi permintaan
Pada tab Permintaan rute, di bawah Pengaturan permintaan rute, pilih Edit.
Untuk ekspresi pemilihan Model, masukkan
${request.body.messageType}
.API Gateway menggunakan
messageType
properti untuk memvalidasi permintaan yang masuk.Pilih Tambahkan model permintaan.
Untuk kunci Model, masukkan
email
.Untuk Model, pilih EmailModel.
API Gateway memvalidasi pesan masuk dengan
messageType
properti yang disetel keemail
terhadap model ini.catatan
Jika API Gateway tidak dapat mencocokkan ekspresi pemilihan model dengan kunci model, maka ia memilih
$default
model. Jika tidak ada$default
model, maka validasi gagal. Untuk API produksi, kami menyarankan Anda membuat$default
model.Pilih Simpan perubahan.
Pada langkah ini, Anda menerapkan dan menguji API Anda.
Untuk menerapkan dan menguji API Anda
Pilih Deploy API.
Pilih tahap yang diinginkan dari daftar dropdown atau masukkan nama tahap baru.
Pilih Deploy.
Di panel navigasi utama, pilih Tahapan.
Salin WebSocket URL API Anda. URL akan terlihat seperti
wss://
.abcdef123
.execute-api.us-east-2
.amazonaws.com/productionBuka terminal baru dan jalankan wscat perintah dengan parameter berikut.
wscat -c wss://
abcdef123
.execute-api.us-west-2
.amazonaws.com/productionConnected (press CTRL+C to quit)
Gunakan perintah berikut untuk menguji API Anda.
{"action": "sendMessage", "messageType": "email"}
{"message": "Invalid request body", "connectionId":"ABCD1=234", "requestId":"EFGH="}
API Gateway akan gagal permintaan.
Gunakan perintah berikutnya untuk mengirim permintaan yang valid ke API Anda.
{"action": "sendMessage", "messageType": "email", "address": "mary_major@example.com"}