Plug-in custom-response mengembalikan kode status HTTP, header, dan badan respons yang dikustomisasi. Anda dapat menggunakannya untuk membuat respons tiruan (mock response) atau mengganti respons untuk kode status tertentu, seperti mengembalikan pesan kustom saat kebijakan throttling dipicu.
Jenis plug-in
Plug-in ini terkait dengan protokol transmisi.
Bidang
|
Bidang |
Tipe data |
Wajib |
Nilai default |
Deskripsi |
|
status_code |
number |
Tidak |
200 |
Kode status HTTP kustom. |
|
headers |
array of string |
Tidak |
- |
Header respons HTTP kustom. Pisahkan setiap pasangan kunci-nilai dengan |
|
body |
string |
Tidak |
- |
Badan respons HTTP kustom. |
|
enable_on_status |
array of number |
Tidak |
- |
Kode status HTTP yang memicu respons kustom. Jika Anda biarkan bidang ini kosong, respons kustom berlaku untuk semua permintaan tanpa memperhatikan kode status aslinya. |
Contoh
Mengembalikan respons kustom dalam skenario mock response
status_code: 200
headers:
- Content-Type=application/json
- Hello=World
body: "{\"hello\":\"world\"}"
Konfigurasi ini mengembalikan respons berikut:
HTTP/1.1 200 OK
Content-Type: application/json
Hello: World
Content-Length: 17
{"hello":"world"}
Mengembalikan respons kustom saat throttling dipicu
enable_on_status:
- 429
status_code: 302
headers:
- Location=https://example.com
Throttling biasanya mengembalikan kode status HTTP 429. Dengan konfigurasi ini, gerbang mengembalikan respons kustom berikut sebagai gantinya:
HTTP/1.1 302 Found
Location: https://example.com
Hal ini mengarahkan ulang permintaan yang dibatasi ke halaman lain, seperti halaman statis pada CDN.
Untuk mengembalikan kode status lain saat throttling dipicu, konfigurasikan bidang-bidang tersebut sebagaimana dijelaskan dalam bagian “Mengembalikan respons kustom dalam skenario mock response”.
Memblokir permintaan untuk entri rute atau nama domain tertentu
Terapkan konfigurasi plug-in berikut ke entri rute route-a dan route-b:
body: "{\"hello\":\"world\"}"
Terapkan konfigurasi plug-in berikut ke nama domain *.example.com dan test.com:
enable_on_status:
- 429
status_code: 200
headers:
- Content-Type=application/json
body: "{\"errmsg\": \"rate limited\"}"
-
route-adanroute-badalah entri rute yang ditentukan saat entri rute gerbang dibuat. Jika suatu permintaan sesuai dengan entri rute, aturan yang dikonfigurasi untuk entri rute tersebut akan diterapkan. -
*.example.comdantest.comsesuai dengan nama domain dalam permintaan. Jika suatu permintaan sesuai dengan nama domain, aturan yang dikonfigurasi untuk nama domain tersebut akan diterapkan. -
Aturan diterapkan secara berurutan. Setelah suatu aturan cocok, aturan berikutnya dilewati.