Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan respons gateway untuk REST API menggunakan konsol API Gateway
Contoh berikut menunjukkan cara mengatur respons gateway untuk REST API menggunakan konsol API Gateway
Untuk menyesuaikan respons gateway menggunakan konsol API Gateway
Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway
. Pilih a RESTAPI.
-
Di panel navigasi utama, pilih Respons Gateway.
-
Pilih jenis respons, lalu pilih Edit. Dalam panduan ini, kami menggunakan token otentikasi Hilang sebagai contoh.
-
Anda dapat mengubah kode Status yang API dihasilkan Gateway untuk mengembalikan kode status berbeda yang memenuhi persyaratan Anda. API Dalam contoh ini, kustomisasi mengubah kode status dari default (
403
) menjadi404
karena pesan kesalahan ini terjadi ketika klien memanggil sumber daya yang tidak didukung atau tidak valid yang dapat dianggap sebagai tidak ditemukan. -
Untuk mengembalikan header khusus, pilih Tambahkan header respons di bawah Header respons. Untuk tujuan ilustrasi, kami menambahkan header khusus berikut:
Access-Control-Allow-Origin:'a.b.c' x-request-id:method.request.header.x-amzn-RequestId x-request-path:method.request.path.petId x-request-query:method.request.querystring.q
Dalam pemetaan header sebelumnya, nama domain statis (
'a.b.c'
) dipetakan keAllow-Control-Allow-Origin
header untuk memungkinkan CORS akses keAPI; header permintaan inputx-amzn-RequestId
dipetakan kerequest-id
dalam respons; variabelpetId
jalur permintaan yang masuk dipetakan kerequest-path
header dalam respons; dan parameterq
kueri dari permintaan asli dipetakan ke header respons.request-query
-
Di bawah Template Response, simpan
application/json
untuk Jenis Konten dan masukkan template pemetaan tubuh berikut di editor badan Template:{ "message":"$context.error.messageString", "type": "$context.error.responseType", "statusCode": "'404'", "stage": "$context.stage", "resourcePath": "$context.resourcePath", "stageVariables.a": "$stageVariables.a" }
Contoh ini menunjukkan cara memetakan
$context
dan$stageVariables
properti ke properti badan respons gateway. -
Pilih Simpan perubahan.
-
Menyebarkan API ke tahap baru atau yang sudah ada.
Uji respons gateway Anda dengan memanggil CURL perintah berikut, dengan asumsi pemanggilan API metode yang sesuai adalah: URL https://
o81lxisefl
.execute-api.us-east-1.amazonaws.com/custErr/pets/{petId}
curl -v -H 'x-amzn-RequestId:123344566' https://o81lxisefl.execute-api.us-east-1.amazonaws.com/custErr/pets/5/type?q=1
Karena parameter string kueri tambahan q=1
tidak kompatibel denganAPI, kesalahan dikembalikan dari respons gateway yang ditentukan. Anda harus mendapatkan respons gateway yang mirip dengan yang berikut ini:
> GET /custErr/pets/5?q=1 HTTP/1.1 Host: o81lxisefl.execute-api.us-east-1.amazonaws.com User-Agent: curl/7.51.0 Accept: */* HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 334 Connection: keep-alive Date: Tue, 02 May 2017 03:15:47 GMT x-amzn-RequestId: 123344566 Access-Control-Allow-Origin: a.b.c x-amzn-ErrorType: MissingAuthenticationTokenException header-1: static x-request-query: 1 x-request-path: 5 X-Cache: Error from cloudfront Via: 1.1 441811a054e8d055b893175754efd0c3.cloudfront.net (CloudFront) X-Amz-Cf-Id: nNDR-fX4csbRoAgtQJ16u0rTDz9FZWT-Mk93KgoxnfzDlTUh3flmzA== { "message":"Missing Authentication Token", "type": MISSING_AUTHENTICATION_TOKEN, "statusCode": '404', "stage": custErr, "resourcePath": /pets/{petId}, "stageVariables.a": a }
Contoh sebelumnya mengasumsikan bahwa API backend adalah Pet Storea