Menyiapkan respons gateway untuk REST API 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 respons gateway untuk REST API menggunakan konsol API Gateway

Untuk menyesuaikan respons gateway menggunakan konsol API Gateway
  1. Masuk ke konsol API Gateway di https://console.aws.amazon.com/apigateway.

  2. Pilih REST API.

  3. Di panel navigasi utama, pilih Respons Gateway.

  4. Pilih jenis respons, lalu pilih Edit. Dalam panduan ini, kami menggunakan token otentikasi Hilang sebagai contoh.

  5. Anda dapat mengubah kode Status yang dihasilkan API Gateway untuk menampilkan kode status berbeda yang memenuhi persyaratan API Anda. Dalam contoh ini, kustomisasi mengubah kode status dari default (403) menjadi 404 karena pesan kesalahan ini terjadi ketika klien memanggil sumber daya yang tidak didukung atau tidak valid yang dapat dianggap sebagai tidak ditemukan.

  6. 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 ke Allow-Control-Allow-Origin header untuk memungkinkan akses CORS ke API; header permintaan input x-amzn-RequestId dipetakan ke request-id dalam respons; variabel petId jalur permintaan yang masuk dipetakan ke request-path header dalam respons; dan parameter q kueri dari permintaan asli dipetakan ke header respons. request-query

  7. 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.

  8. Pilih Simpan perubahan.

  9. Menerapkan API ke tahap baru atau yang sudah ada.

Uji respons gateway Anda dengan memanggil perintah CURL berikut, dengan asumsi URL pemanggilan metode API yang sesuai adalah: 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 dengan API, 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 backend API adalah Pet Store dan API memiliki variabel stage,, didefinisikan. a