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

Contoh berikut menunjukkan cara mengatur 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 a RESTAPI.

  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 API dihasilkan Gateway untuk mengembalikan kode status berbeda yang memenuhi persyaratan Anda. API 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 CORS akses keAPI; 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. 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 Store dan API memiliki variabel tahap,, didefinisikan. a