Keajaiban Nilai Dinamis & Fungsi Kustom di EchoAPI
Nilai Dinamis dan Fungsi Kustom EchoAPI merampingkan pengujian API dengan mengotomatiskan parameter dinamis dan logika kompleks. Keduanya menghilangkan kesalahan manual dan mempercepat proses debug, khususnya untuk alur kerja multi-tahap dan kepaturan peraturan regional.
Nilai dinamis dan fungsi kustom adalah dua senjata andalan di EchoAPI yang membuat pengujian API jauh lebih cepat, fleksibel, dan siap menangani logika bisnis yang rumit. Fitur-fitur ini sangat berguna saat kita harus menjalankan alur multi-langkah, mengatasi ketergantungan antar-parameter, atau beradaptasi dengan skenario tak terduga. Mari kita bahas satu per satu dengan studi kasus nyata.

1. Nilai Dinamis: Parameter yang Selalu Sesuai Konteks
Nilai dinamis adalah parameter yang dibuat atau diambil secara otomatis saat runtime—mulai dari cap waktu, angka acak, hingga data dari respons sebelumnya. Fitur ini menyelesaikan dua masalah besar: parameter yang selalu berubah dan ketergantungan antar-API.
Studi Kasus: Alur Checkout E-commerce (Lintas API)
Seorang developer di Amerika sedang men-debug rantai Buat Pesanan → Bayar Pesanan:
1. API Buat Pesanan mengembalikan orderId
unik setiap kali dipanggil.
Simpan orderId
ke variabel lingkungan

Tambahkan Post-response → Extract Variables

Kirim permintaan → lihat hasil acak

Pilih fungsi → Insert

Klik Mock data function

2. API Pembayaran membutuhkan:
orderId
dari langkah sebelumnyatimestamp
untuk mencegah permintaan kadaluarsanonce
untuk menghindari serangan replay


Cara Menggunakan Nilai Dinamis
- Setelah memanggil Buat Pesanan, gunakan Post-response → Extract Variables untuk menyimpan
orderId
ke lingkungan. - Saat memanggil API Pembayaran, pilih nilai dinamis untuk parameter:
orderId
: Reference Env → orderIdtimestamp
: Add Dynamic Value → Mock Data → Date (ms otomatis)nonce
: Add Dynamic Value → Mock Data → Random String (format valid otomatis)

Manfaat Utama
- Bebas salah ketik: Tidak perlu salin-tempel ID atau hitung cap waktu secara manual.
- Debug lebih cepat: Alur multi-API yang biasanya 5 menit kini cukup 1 menit.
- Siap lintas zona waktu: Otomatis membuat UTC, JST, PST, WIB, dll., tanpa konversi manual.
2. Nilai Dinamis Bawaan Sistem
EchoAPI menyediakan nilai dinamis siap pakai tanpa konfigurasi tambahan. Data dihasilkan secara real-time sesuai kebutuhan pengujian.
Nilai Berbasis Waktu
Jenis Nilai | Contoh | Deskripsi | Contoh Penggunaan |
---|---|---|---|
Unix Timestamp (ms) | 1620000000000 | Milidetik sejak 1970-01-01 UTC | Mencegah replay attack |
Unix Timestamp (s) | 1620000000 | Detik sejak 1970-01-01 UTC | API yang membutuhkan format detik |
UTC Time String | 2023-06-15T12:00:00Z | Format ISO8601 UTC | API internasional |
Local Time String | 2023-06-15 20:00:00 | Zona waktu sistem | Sistem lokal |
Japan Time (JST) | 2023-06-15 21:00:00 | UTC+9 | Pengujian Jepang |
Indonesia Time (WIB) | 2023-06-15 19:00:00 | UTC+7 | Pengujian Indonesia |
US West (PST/PDT) | 2023-06-15 05:00:00 | Waktu Pasifik | API Pantai Barat AS |
Date Only | 2023-06-15 | Format YYYY-MM-DD | Filter berdasarkan tanggal |
Relative Time | Now + 1h | Offset waktu dinamis | Token kadaluarsa |
Kelebihan: Tidak perlu pusing menghitung zona waktu—tinggal pakai.
Nilai Acak
Jenis Nilai | Contoh | Deskripsi | Contoh Penggunaan |
---|---|---|---|
Random Integer | 12345 | Rentang dapat diatur | ID uji acak |
Random String | x7Bp9Q | Panjang/karakter bisa kustom | Nonce |
Random UUID | f47ac10b-... | UUID v4 | Identifier unik |
Random Boolean | true / false | Nilai bool acak | Logika percabangan |
Random Email | test_123@example.com | Format email valid | Akun pengguna uji |
Random Phone | +12065551234 | Kode negara fleksibel | Input nomor telepon |
Random IP | 192.168.0.1 | Format IP valid | Simulasi sumber IP berbeda |
Informasi Lingkungan
Jenis Nilai | Contoh | Deskripsi | Contoh Penggunaan |
---|---|---|---|
Current Project ID | proj_123456 | ID proyek aktif | Audit log API |
Current Environment | production | Lingkungan aktif | Logika berbasis env |
Local IP | 192.168.0.1 | IP mesin lokal | API terikat IP |
Local Hostname | my-laptop | Hostname mesin | Identifikasi perangkat |
EchoAPI Version | 2.3.0 | Versi EchoAPI | Uji kompatibilitas |
OS | Windows 10 | Sistem operasi | Perilaku khusus OS |
Konstanta & Format
Jenis Nilai | Contoh | Deskripsi | Contoh Penggunaan |
---|---|---|---|
Null | null | Nilai null standar | Field opsional |
Empty String | "" | String kosong | Parameter kosong |
Newline | \n | Karakter baris baru | Teks multibaris |
Tab | \t | Karakter tab | Format teks |
Space | ( ) | Spasi | Pembatas parameter |
Empty JSON Object | {} | Objek JSON kosong | Payload default |
Empty JSON Array | [] | Array JSON kosong | Parameter array kosong |
Contoh komposisi:
ORDER_{{$fakerjs.Date.birthdate|format(YYYY/MM/DD HH:mm:ss,+08:00)}}{{$fakerjs.String.uuid}}

3. Fungsi Kustom: Solusi untuk Logika Bisnis Spesifik
Fungsi kustom memungkinkan kita menulis skrip (JavaScript, dll.) untuk kebutuhan khusus seperti enkripsi, validasi, atau format non-standar.
Studi Kasus: Enkripsi Parameter Fintech
Developer fintech di Indonesia sedang debug API Bind Card dengan aturan:
1. Parameter sensitif (mis. phone
) harus dienkripsi MD5 (bukan standar umum).


2. Hasil enkripsi diberi prefix IDN_FIN_
.

Cara Menggunakan Fungsi Kustom
1. Di modul Custom Function, buat skrip:
try {
let hash = 0;
if (text.length === 0) return hash.toString(16);
for (let i = 0; i < text.length; i++) {
let char = text.charCodeAt(i);
hash = ((hash << 5) - hash) + char;
hash = hash & hash;
}
return "IDN_FIN_" + hash.toString(16);
} catch (e) {
return text;
}
Referensikan fungsi di parameter

Masukkan skrip dan uji hasilnya

Klik Create

Pilih Custom Function Management

Klik Functions

2. Saat memanggil API Bind Card, pilih Custom Function → MD5Encrypt → masukkan nilai mentah → EchoAPI otomatis enkripsi dan tambahkan prefix.

4. Fungsi Sistem Bawaan EchoAPI
EchoAPI juga menyediakan fungsi bawaan tanpa kode—langsung pakai untuk transformasi string, konversi data, enkripsi, bahkan operasi matematika.
1. Fungsi String
Fungsi | Contoh Penggunaan | Hasil |
---|---|---|
strToUpper | strToUpper("hello") |
"HELLO" |
strToLower | strToLower("HELLO") |
"hello" |
strTrim | strTrim(" test ") |
"test" |
strPadLeft | strPadLeft("123",5,"0") |
"00123" |
strPadRight | strPadRight("123",5,"0") |
"12300" |
strReplace | strReplace("hello","l","x") |
"hexxo" |
strSubstring | strSubstring("hello",1,3) |
"ell" |
strConcat | strConcat("a","b","c") |
"abc" |
strLength | strLength("hello") |
5 |
strEncodeURI | strEncodeURI("a b") |
"a%20b" |
strDecodeURI | strDecodeURI("a%20b") |
"a b" |
Contoh praktis: Normalisasi ID produk di toko daring AS—jadikan huruf besar dan tambahkan nol di depan.
2. Fungsi Konversi Data
Fungsi | Contoh | Hasil |
---|---|---|
toNumber | toNumber("123") |
123 |
toString | toString(123) |
"123" |
toBoolean | toBoolean("true") |
true |
parseJson | parseJson('{"a":1}') |
{a:1} |
stringifyJson | stringifyJson({a:1}) |
'{"a":1}' |
formatDate | formatDate(1620000000000,"YYYY-MM-DD") |
"2021-05-03" |
parseDate | parseDate("2021-05-03","YYYY-MM-DD") |
1620000000000 |
arrayJoin | arrayJoin([1,2,3],",") |
"1,2,3" |
arraySplit | arraySplit("1,2,3",",") |
[1,2,3] |
Adaptasi regional:
- Jepang →
"YYYY年MM月DD日"
- Indonesia →
"DD/MM/YYYY"
3. Fungsi Enkripsi & Encoding
Fungsi | Contoh | Hasil (contoh) |
---|---|---|
md5 | md5("hello") |
"5d41402abc4b2a76b9719d911017c592" |
sha1 | sha1("hello") |
"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" |
sha256 | sha256("hello") |
hash SHA256 |
base64Encode | base64Encode("hello") |
"aGVsbG8=" |
base64Decode | base64Decode("aGVsbG8=") |
"hello" |
hmacMd5 | hmacMd5("hello","key") |
hasil HMAC-MD5 |
hmacSha256 | hmacSha256("hello","key") |
hasil HMAC-SHA256 |
urlSafeBase64 | urlSafeBase64Encode("a+b") |
"a-b" (karakter aman URL) |
Studi kasus: Tambahkan HMAC-SHA256 pada parameter API fintech Indonesia untuk keamanan transmisi.
4. Fungsi Matematika & Logika
Fungsi | Contoh | Hasil |
---|---|---|
mathAdd | mathAdd(2,3) |
5 |
mathSubtract | mathSubtract(5,2) |
3 |
mathMultiply | mathMultiply(2,3) |
6 |
mathDivide | mathDivide(6,2) |
3 |
mathRound | mathRound(3.1415,2) |
3.14 |
mathRandom | mathRandom(1,10) |
5 |
ifElse | ifElse(1>2,"yes","no") |
"no" |
isEmpty | isEmpty("") |
true |
isEqual | isEqual(2,"2") |
false |
Contoh e-commerce AS: Hitung pajak penjualan (amount × taxRate
), lalu pembulatan dua desimal.
5. Fungsi Utilitas Sistem
Fungsi | Contoh | Hasil/Tujuan |
---|---|---|
getEnv | getEnv("apiUrl") |
Ambil nilai variabel lingkungan |
setEnv | setEnv("token","xxx") |
Set nilai variabel lingkungan |
sleep | sleep(1000) |
Jeda 1 detik |
log | log("Request started") |
Log ke konsol untuk debug |
uuid | uuid() |
UUID acak |
timestamp | timestamp() |
Timestamp saat ini (ms) |
Contoh praktis: Set token otomatis sebelum request, atau tambahkan log debug di alur kompleks.
6. Fitur Unggulan Fungsi Sistem
- Tanpa Konfigurasi: Langsung pakai.
- Konsisten Lintas Platform: EchoAPI desktop, VS Code, IntelliJ sama saja.


- Komposabel: Bisa disusun menjadi logika kompleks.
- Offline: Semua dieksekusi lokal tanpa internet.
- Regional: Format tanggal otomatis menyesuaikan lokal.
Ringkasan: Nilai Tambah Utama
Fitur | Masalah Inti yang Terpecahkan | Nilai Tambah untuk Developer Multi-Region |
---|---|---|
Nilai Dinamis | Parameter dinamis & dependensi antar-API | Otomatis zona waktu & format lokal |
Fungsi Kustom | Logika bisnis khusus (enkripsi, format, dll) | Cepat sesuaikan aturan regional & compliance |
Dengan memanfaatkan kedua fitur ini, tim dapat fokus pada validasi bisnis, bukan lagi pada pengaturan parameter. Alur kerja jadi lebih cepat, lebih sedikit kesalahan manusia, dan integrasi lintas region pun berjalan mulus.