Dalam pengembangan lokal, kita seringkali menghadapi masalah dalam membagi paketkan data antara lingkungan pengembangan dan lingkungan produksi. Salah satu cara untuk menyelesaikan masalah ini adalah dengan menggunakan alat bantu like Whistle.
CNAME
Whistle memungkinkan kita membuat CNAME (Canonical Name) yang mirip seperti DNS. Dengan menggunakan kata kunci host
, kita dapat membuat nama domain www.example.com
sebagai alias untuk IP address 127.0.0.1:8080
. Contoh:
host://www.qq.com www.example.com
Dengan demikian, saat kita mengakses nama domain www.example.com
, Whistle akan langsung mengarahkan kita ke IP address yang terkait.
Path Matching
Selain CNAME, Whistle juga memungkinkan kita untuk membuat matching path. Contoh:
127.0.0.1:8080 example.com/test
Dengan menggunakan syntax di atas, kita dapat mengarahkan semua request ke example.com/test
ke IP address 127.0.0.1:8080
.
Exact Matching
Jika kita ingin membuat matching yang lebih spesifik, kita dapat menggunakan kata kunci $
. Contoh:
$example.com/test
Dengan demikian, hanya request yang memiliki path example.com/test
yang akan diarahkan ke IP address 127.0.0.1:8080
.
Regular Expression
Whistle juga memungkinkan kita untuk membuat matching menggunakan regular expression. Contoh:
127.0.0.1:8080 /example\.com/i
Dengan demikian, semua request yang memiliki URL http://example.com/
atau https://www.example.com/
akan diarahkan ke IP address 127.0.0.1:8080
.
Wildcard Matching
Jika kita ingin membuat matching wildcard, kita dapat menggunakan sintaks *
. Contoh:
127.0.0.1:8080 */cgi-bin/test
Dengan demikian, semua request yang memiliki path http://example.com/cgi-bin/test/
atau https://www.example.com/cgi-bin/test/
akan diarahkan ke IP address 127.0.0.1:8080
.
Combination Matching
Whistle juga memungkinkan kita untuk membuat matching kombinasi antara beberapa syntax sebelumnya. Contoh:
127.0.0.1:8080 http://example.com:5555 /example\.cn/i $www.example.com:6666/aa www.test.com/bb
Dengan demikian, semua request yang memiliki nama domain http://example.com:5555
, URL http://example.cn/
, atau path http://www.example.com:6666/aa
dan http://www.test.com/bb
akan diarahkan ke IP address 127.0.0.1:8080
.
Filter Rule
Jika kita ingin membuat filter rule untuk menyelesaikan beberapa kasus spesifik, kita dapat menggunakan sintaks berikut:
ignore
: untuk mengabaikan request yang tidak sesuai dengan aturanfilter
: untuk memfilter request berdasarkan method, header, dan IP client
Contoh:
pattern operator1 operator2 excludeFilter://m:post includeFilter://h:cookie=test includeFilter:///cgi-bin/i
Dengan demikian, semua request yang memiliki method POST, header cookie yang mengandung kata test
(tidak peduli kasus), dan URL yang mengandung kata cgi-bin
akan diabaikan.
Whistle memungkinkan kita untuk membuat beberapa syntax yang berbeda untuk menyelesaikan berbagai masalah dalam pengembangan lokal. Dengan menggunakan CNAME, path matching, exact matching, regular expression, wildcard matching, combination matching, dan filter rule, kita dapat meningkatkan efisiensi dan keteraturan dalam pengembangan aplikasi.