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.png

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

6.png

Tambahkan Post-responseExtract Variables

5.png

Kirim permintaan → lihat hasil acak

4.png

Pilih fungsi → Insert

3.png

Klik Mock data function

2.png

2. API Pembayaran membutuhkan:

  • orderId dari langkah sebelumnya
  • timestamp untuk mencegah permintaan kadaluarsa
  • nonce untuk menghindari serangan replay
7.png
8.png

Cara Menggunakan Nilai Dinamis

  1. Setelah memanggil Buat Pesanan, gunakan Post-responseExtract Variables untuk menyimpan orderId ke lingkungan.
  2. Saat memanggil API Pembayaran, pilih nilai dinamis untuk parameter:
    • orderId: Reference Env → orderId
    • timestamp: Add Dynamic Value → Mock Data → Date (ms otomatis)
    • nonce: Add Dynamic Value → Mock Data → Random String (format valid otomatis)
9.png

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}}
10.png

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).

11.png
12.png

2. Hasil enkripsi diberi prefix IDN_FIN_.

13EchoAPI Custom Functions3.png

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

18.png

Masukkan skrip dan uji hasilnya

17.png

Klik Create

16.png

Pilih Custom Function Management

15.png

Klik Functions

14.png

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

19.png

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.
20EchoAPI Custom Functions Key Features of Built-in System Functions.png
21EchoAPI Key Features of Built-in System Functions.png
  • 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.