All Products
Search
Document Center

API Gateway:Plugin rewrite request-respons (Hanya untuk Instans Khusus)

Last Updated:Jun 03, 2026

Plugin rewrite request-respons memodifikasi permintaan HTTP sebelum mencapai backend Anda dan respons HTTP sebelum mencapai klien. Gunakan plugin ini untuk menambahkan, menimpa, atau menghapus parameter permintaan (Header, Query, dan Form) serta header respons, dan untuk mengganti kode status respons.

Operasi yang didukung

Plugin ini mengintersepsi lalu lintas pada dua titik dalam siklus hidup permintaan: setelah pemetaan parameter pada jalur inbound dan setelah pemetaan kode kesalahan pada jalur outbound. Pada masing-masing titik tersebut, plugin menerapkan aturan transformasi yang Anda konfigurasikan.

Operasi berikut didukung untuk permintaan HTTP:

  • addRequestParameterIfAbsent: Menambahkan parameter pada lokasi yang ditentukan (Header, Query, atau Form) dengan nama dan nilai yang diberikan. Jika parameter tersebut sudah ada, nilainya tidak diubah.

  • putRequestParameter: Menambahkan parameter pada lokasi yang ditentukan dengan nama dan nilai yang diberikan. Jika parameter tersebut sudah ada, nilainya akan ditimpa.

  • removeRequestParameter: Menghapus parameter dari lokasi yang ditentukan. Berikan lokasi dan nama parameternya.

Operasi berikut didukung untuk respons HTTP:

  • setResponseStatusCode: Mengganti kode status yang dikembalikan oleh layanan backend.

  • addResponseHeaderIfAbsent: Menambahkan header respons dengan nama dan nilai yang diberikan. Jika header tersebut sudah ada, nilainya tidak diubah.

  • putResponseHeader: Menambahkan header respons dengan nama dan nilai yang diberikan. Jika header tersebut sudah ada, nilainya akan ditimpa.

  • removeResponseHeader: Menghapus header respons berdasarkan namanya.

Catatan

Operasi permintaan mendukung tiga lokasi parameter: Header, Query, dan Form. Operasi respons hanya mendukung Header.

Penting

Transformasi permintaan dijalankan setelah pemetaan parameter, sebelum permintaan diteruskan ke backend. Transformasi respons dijalankan setelah pemetaan kode kesalahan, sebelum respons dikembalikan ke klien.

Contoh konfigurasi

Konfigurasikan plugin ini dalam format YAML atau JSON—keduanya menggunakan skema yang sama. Gunakan alat konversi YAML-ke-JSON untuk beralih antarformat. Templat YAML berikut mencakup semua operasi yang didukung:

---
addRequestParameterIfAbsent:         # Tambahkan ke permintaan; lewati jika parameter sudah ada.
  - name: userId
    value: 123456
    location: query
putRequestParameter:                 # Tambahkan ke permintaan; timpa jika parameter sudah ada.
  - name: name
    value: Jack
    location: header
removeRequestParameter:              # Hapus dari permintaan.
  - name: address
    location: form
setResponseStatusCode: 200           # Ganti kode status respons.
addResponseHeaderIfAbsent:           # Tambahkan ke header respons; lewati jika header sudah ada.
  - name: age
    value: 18
putResponseHeader:                   # Tambahkan ke header respons; timpa jika header sudah ada.
  - name: name
    value: Alice
removeResponseHeader:                # Hapus dari header respons.
  - name: phone

Perbedaan utama antara addRequestParameterIfAbsent / addResponseHeaderIfAbsent dan putRequestParameter / putResponseHeader terletak pada perilaku saat parameter tersebut sudah ada:

  • addRequestParameterIfAbsent: API Gateway memeriksa apakah userId ada dalam string kueri sebelum meneruskan permintaan. Jika tidak ada, API Gateway menyisipkannya dengan nilai 123456. Jika sudah ada, API Gateway tidak mengubahnya—berguna untuk menetapkan nilai default tanpa menimpa nilai yang telah dikirim klien.

  • putResponseHeader: API Gateway menetapkan header respons name menjadi Alice terlepas dari apakah header tersebut sudah ada. Jika header tersebut sudah ada, nilainya akan ditimpa—berguna untuk memastikan nilai header tertentu selalu diterapkan pada setiap respons.

Batasan

Plugin rewrite request-respons hanya tersedia pada instans khusus.

Untuk instans khusus yang dibeli sebelum 2 April 2024: jika konfigurasi gagal diterapkan, kirimkan tiket untuk melakukan upgrade versi instans.