Kebijakan penulisan ulang HTTP memodifikasi path dan hostname permintaan sebelum diteruskan ke layanan backend, sehingga memberi Anda kendali tepat atas perutean sesuai kebutuhan bisnis dan arsitektur Anda.
Konfigurasikan kebijakan penulisan ulang HTTP
Penulisan ulang HTTP memodifikasi path dan hostname dari permintaan asli.
-
Cloud-native API Gateway menyediakan dua cara untuk mengonfigurasi kebijakan penulisan ulang HTTP: untuk API yang dikelola di luar instans dan untuk API yang dikelola dalam instans.
API di luar instans
-
Masuk ke Konsol Cloud-native API Gateway. Di panel navigasi sebelah kiri, klik API, lalu pilih Wilayah dari bilah menu atas.
-
Klik API target. Dari daftar drop-down All instances di bagian atas, pilih instance target atau pilih All Instances.
-
Pada tab Routes, pilih entri rute target.
API dalam instans
-
Masuk ke Konsol Cloud-native API Gateway. Di panel navigasi sebelah kiri, klik Instance, lalu pilih Wilayah dari bilah menu atas.
-
Pada halaman Instance, klik ID instans gerbang target. Di panel navigasi sebelah kiri, klik API, lalu klik API target.
-
Pada tab Routes, pilih entri rute target.
-
-
Klik tab Configure Policy. Kemudian, pada bagian Inbound Processing, klik Enable Policy/Plug-in.
-
Klik kartu HTTP Rewrite. Pada panel Add Policy: HTTP Rewrite, konfigurasikan parameter dan klik Add.
Penulisan ulang path
Cloud-native API Gateway mendukung dua metode penulisan ulang path: prefix rewrite dan regex rewrite.
Prefix rewrite
Prefix rewrite mengubah awalan path dari sebuah permintaan.
Contoh 1
Untuk mengubah path permintaan dari /app/test menjadi /test sebelum diteruskan ke layanan backend, gunakan konfigurasi berikut:
-
Kondisi pencocokan entri rute: Jenis pencocokan adalah Prefix Match, dan path-nya adalah
/app/. -
Rewrite: Jenis penulisan ulang adalah Prefix Rewrite, dan path-nya adalah
/.
Path untuk kondisi pencocokan entri rute harus berupa /app/. Hal ini karena prefix rewrite hanya menggantikan string yang dicocokkan oleh aturan awalan. Jika path untuk kondisi diatur sebagai /app, path hasil penulisan ulang akan menjadi //test, yang bukan hasil yang diinginkan.
Contoh 2
Untuk mengubah path permintaan dari /v1/test menjadi /v2/test, gunakan konfigurasi berikut:
-
Kondisi pencocokan entri rute: Jenis pencocokan adalah Prefix Match, dan path-nya adalah
/v1. -
Rewrite: Jenis penulisan ulang adalah Prefix Rewrite, dan path-nya adalah
/v2.
Prefix rewrite mengharuskan jenis pencocokan entri rute menggunakan Prefix Match. Jenis penulisan ulang ini tidak didukung untuk entri rute yang menggunakan Exact Match atau Regex Match. Karena pencocokan awalan berlaku untuk semua permintaan yang memiliki awalan path yang sama, pertimbangkan dengan cermat apakah semua permintaan yang cocok memang harus ditulis ulang. Jika tidak, pertimbangkan penggunaan regex rewrite.
Regex rewrite
Regex rewrite memodifikasi sebagian path permintaan dengan menggunakan parameter mode (pola ekspresi reguler yang dicocokkan) dan parameter replacement (string pengganti). Untuk detail sintaksis, lihat sintaksis ekspresi reguler.
Contoh 1
Untuk mengubah path permintaan dari /aaa/one/bbb/one/ccc menjadi /aaa/two/bbb/two/ccc, gunakan konfigurasi berikut:
-
Kondisi pencocokan entri rute: Jenis pencocokan adalah Exact Match, dan path-nya adalah
/aaa/one/bbb/one/ccc. -
Rewrite: Jenis penulisan ulang adalah Regex Rewrite,
mode-nya adalahone, danreplacement-nya adalahtwo.
Contoh 2
Untuk menghapus awalan /httpbin dari path seperti /httpbin/(.*)/(.*) dan menukar dua kelompok yang ditangkap, gunakan konfigurasi berikut:
-
Kondisi pencocokan entri rute: Jenis pencocokan adalah Regex Match, dan path-nya adalah
/httpbin/(.*)/(.*). -
Rewrite: Jenis penulisan ulang adalah Regex Rewrite,
mode-nya adalah/httpbin/(.*)/(.*), danreplacement-nya adalah/\2/\1. Pada string ini,\1merepresentasikan kelompok pertama yang ditangkap dari ekspresi reguler, sedangkan\2merepresentasikan kelompok kedua. Ini mirip dengan variabel $1 dan $2 yang digunakan di Nginx.
Regex rewrite merupakan fitur lanjutan dengan sintaksis kompleks yang biasanya digunakan untuk kasus khusus. Kami menyarankan menggunakan prefix rewrite jika sudah memenuhi kebutuhan Anda.
Penulisan ulang hostname
Cloud-native API Gateway mendukung penulisan ulang hostname secara eksak.
Sebagai contoh, untuk mengubah hostname permintaan dari test.com menjadi dev.com, atur hostname penulisan ulang menjadi dev.com dalam konfigurasi kebijakan.