← Kembali ke Blog

Cara Men-debug Respons API: Tips Penampil JSON

Kuasai debugging API dengan teknik penampil JSON profesional. Pelajari cara memeriksa, memfilter, dan memecahkan masalah respons API secara efisien menggunakan alat modern dan strategi yang terbukti.

Big JSON Team14 menit bacapemrograman
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

14 min read

# Cara Men-debug Respons API: Tips Penampil JSON

Men-debug respons API adalah tugas harian bagi pengembang web, tetapi kebanyakan orang menggunakan penampil JSON mereka secara tidak benar. Panduan ini mengungkapkan teknik profesional untuk memeriksa, menganalisis, dan memecahkan masalah respons API 10x lebih cepat menggunakan penampil JSON modern.

Baik Anda bekerja dengan REST API, GraphQL, atau WebSockets, tips ini akan mengubah alur kerja debugging Anda.

---

Mengapa Penampilan JSON yang Tepat Itu Penting

Masalah yang Sering Terjadi

Tanpa penampilan JSON yang efektif, pengembang membuang waktu berjam-jam:

  • 😫 Menggulir ribuan baris JSON yang diminimalkan (minified)
  • 🔍 Mencari field tertentu secara manual dalam objek bersarang
  • 🐛 Melewatkan pesan kesalahan kritis yang terkubur dalam respons
  • ⏰ Menyalin-tempel data antar alat untuk memahami struktur
  • 💥 Membuat browser macet dengan respons API yang masif

Solusinya

Penampil JSON profesional menyediakan:

Pemformatan instan - Mengubah JSON yang diminimalkan menjadi struktur yang mudah dibaca

Navigasi interaktif - Menciutkan/memperluas objek bersarang

Pencarian path - Menemukan lokasi data yang tepat

Penyorotan tipe - Membedakan string, angka, boolean dalam sekejap

Cari & filter - Menemukan jarum dalam tumpukan jerami secara instan

---

Memilih Penampil JSON Anda

Alat Pengembang Browser

Chrome DevTools:
  • Penampil JSON bawaan untuk respons API
  • Tab Network menampilkan respons yang diformat
  • Console mendukung fungsionalitas salin path

Batasan:
  • Hanya pemformatan dasar
  • Tidak ada pencarian lanjutan
  • Dapat macet dengan respons besar (>10MB)

Penampil JSON Online

BigJSON Viewer - Terbaik untuk file besar:
  • ✅ Menangani file 100MB+ tanpa lag
  • ✅ Tampilan pohon dengan penyalinan path
  • ✅ Pemformatan satu-klik
  • ✅ Pemrosesan sisi klien (100% pribadi)
  • ✅ Kapabilitas cari dan filter

JSONLint - Bagus untuk validasi:
  • ✅ Validasi sintaksis
  • ✅ Penyorotan kesalahan
  • ❌ Fitur navigasi terbatas

Ekstensi IDE

VS Code:
  • Ekstensi "JSON Tools"
  • "Pretty JSON" untuk pemformatan
  • Validasi schema JSON bawaan

Postman:
  • Penampil JSON terintegrasi
  • Riwayat respons
  • Pembuatan pengujian

---

Teknik Esensial Penampil JSON

1. Ekstraksi Path Cepat

Masalahnya:

Anda perlu mengakses user.profile.settings.notifications.email dari respons API.

Tanpa Penampil JSON:
// Pengeboran manual - rawan kesalahan!

const email = response.user.profile.settings.notifications.email;

Dengan BigJSON Viewer:
  • Klik pada field target
  • Salin path dengan satu klik
  • Dapatkan: user.profile.settings.notifications.email
  • Tips Pro: Gunakan sintaksis JSONPath untuk kueri yang lebih kompleks:
    $.user.profile.settings.notifications.email
    

    $.users[].email // Semua email pengguna

    $.products[?(@.price < 100)].name // Produk di bawah $100

    2. Strategi Ciutkan/Perluas (Collapse/Expand)

    Tekniknya:

    Mulai dengan kondisi diciutkan, perluas secara strategis.

    Contoh - Men-debug API Pengguna:
    {
    

    "status": "success", // ← Tetap terlihat

    "metadata": { ... }, // ← Ciutkan awalnya

    "users": [ // ← Tetap terlihat

    {

    "id": 1,

    "profile": { ... }, // ← Perluas saat menyelidiki pengguna

    "permissions": { ... } // ← Ciutkan awalnya

    }

    ],

    "debug": { ... } // ← Ciutkan kecuali sedang debugging

    }

    Pintasan BigJSON Viewer:
    • Klik panah untuk memperluas/menciutkan
    • Klik ganda untuk memperluas semua anak
    • Klik kanan untuk "Expand All" / "Collapse All"

    3. Navigasi Berbasis Tipe

    Memahami Tipe Data Sekilas:

    Penampil JSON modern menggunakan pengkodean warna:

    {
    

    "string": "teks biru", // 🔵 Strings dalam warna biru

    "number": 42, // 🟢 Numbers dalam warna hijau

    "boolean": true, // 🟠 Booleans dalam warna oranye

    "null": null, // ⚫ Null dalam warna abu-abu

    "array": [], // 🟣 Arrays dengan kurung siku

    "object": {} // 🟤 Objects dengan kurung kurawal

    }

    Mengapa Ini Penting:

    Temukan masalah tipe data secara instan:

    {
    

    "userId": "123", // 🔵 Haruskah ini angka?

    "price": "29.99", // 🔵 Mungkin salah - harusnya angka

    "active": "true" // 🔵 Seharusnya boolean, bukan string!

    }

    ---

    Men-debug Respons API Nyata

    Skenario 1: Data yang Diharapkan Hilang

    Respons API:
    {
    

    "status": 200,

    "data": {

    "users": [

    { "id": 1, "name": "Alice" },

    { "id": 2, "name": "Bob" }

    ]

    }

    }

    Diharapkan tetapi Hilang: Field email Langkah Debugging dengan Penampil JSON:
  • Cari "email" - Gunakan Cmd/Ctrl + F
  • - Tidak ada hasil? Field benar-benar hilang, bukan sekadar tersembunyi

  • Periksa dokumentasi API - Bandingkan struktur yang diharapkan dengan yang asli
  • Periksa objek serupa - Apakah pengguna lain juga tidak memiliki email?
  • Verifikasi parameter permintaan - Mungkin email memerlukan ?fields=email
  • Tips Pro: Buat schema JSON referensi:
    // expected-user-schema.json
    

    {

    "id": "number",

    "name": "string",

    "email": "string", // ← Hilang dalam respons asli!

    "avatar": "string"

    }

    Skenario 2: Pesan Kesalahan Bersarang

    Respons Kesalahan API:
    {
    

    "status": 400,

    "error": {

    "code": "VALIDATION_ERROR",

    "message": "Permintaan tidak valid",

    "details": {

    "fields": {

    "email": {

    "errors": [

    {

    "code": "INVALID_FORMAT",

    "message": "Format email harus valid"

    }

    ]

    }

    }

    }

    }

    }

    Navigasi Cepat:
  • Perluas errordetailsfieldsemail
  • Salin path: error.details.fields.email.errors[0].message
  • Gunakan dalam kode:
  • const errorMsg = response?.error?.details?.fields?.email?.errors?.[0]?.message;
    

    console.error('Kesalahan validasi:', errorMsg);

    Skenario 3: Masalah Performa (Respons Besar)

    Masalahnya:

    API mengembalikan 50.000 produk, browser membeku.

    Solusi dengan BigJSON Viewer:
  • Gunakan mode streaming - Muat data secara progresif
  • Filter sebelum melihat - Terapkan filter JSON:
  • $.products[?(@.inStock === true)]

  • Unduh subset - Ekstrak hanya apa yang Anda butuhkan
  • Strategi Paginasi:
    // Alih-alih mengambil semuanya:
    

    GET /api/products?limit=1000 // ❌ Berat

    // Ambil dalam halaman:

    GET /api/products?page=1&limit=50 // ✅ Terkelola

    ---

    Tips Penampil JSON Lanjutan

    1. Bandingkan Dua Respons API

    Kasus Penggunaan: Perilaku API berubah di antara versi. Teknik:
    // Tangkap respons
    

    const v1Response = await fetch('/api/v1/user');

    const v2Response = await fetch('/api/v2/user');

    // Gunakan alat diff online

    // BigJSON menyediakan perbandingan berdampingan (side-by-side)

    Apa yang Harus Dicari:
    • Field yang hilang
    • Perubahan tipe ("123"123)
    • Perubahan struktur (objek → array)
    • Field baru yang ditambahkan

    2. Ekstrak Pola Data Tertentu

    Contoh JSONPath:
    // Semua alamat email
    

    $.users[].email

    // Produk di atas $100

    $.products[?(@.price > 100)]

    // Pengguna dengan peran admin

    $.users[?(@.role === 'admin')]

    // Pencarian array bersarang

    $..comments[].author.name

    Gunakan Evaluator JSONPath BigJSON:
  • Tempel JSON Anda
  • Masukkan kueri JSONPath
  • Lihat hasil yang cocok secara instan
  • 3. Validasi Terhadap Schema

    Contoh Schema JSON:
    {
    

    "$schema": "http://json-schema.org/draft-07/schema#",

    "type": "object",

    "properties": {

    "userId": { "type": "number" },

    "email": {

    "type": "string",

    "format": "email"

    },

    "created": {

    "type": "string",

    "format": "date-time"

    }

    },

    "required": ["userId", "email"]

    }

    Validasi di BigJSON:
    • Unggah skema
    • Validasi respons
    • Lihat pelanggaran yang disorot

    4. Simpan & Bagikan Respons API

    Alur Kerja:
  • Tangkap respons - Simpan output API ke file
  • Anonimkan data sensitif - Hapus token, kata sandi
  • Bagikan dengan tim - Unggah ke ruang kerja bersama
  • Tambahkan anotasi - Beri komentar pada field tertentu
  • Contoh - Berbagi dengan Tim Dukungan:
    {
    

    "_comment": "Kesalahan terjadi saat membuat pesanan dengan kupon yang tidak valid",

    "orderId": "ORD-12345",

    "error": {

    "code": "INVALID_COUPON",

    "message": "Kupon XYZ123 telah kedaluwarsa"

    }

    }

    ---

    Alur Kerja Debugging DevTools Browser

    Tips Pro Chrome DevTools

    1. Pertahankan Log Jaringan (Preserve Network Logs)
    • Klik kanan tab Network → Centang "Preserve log"
    • Membuat panggilan API tetap terlihat selama navigasi halaman

    2. Filter Permintaan XHR/Fetch
    • Klik "XHR" atau "Fetch" di tab Network
    • Menyembunyikan CSS, gambar, skrip

    3. Salin sebagai cURL
    • Klik kanan permintaan → Copy → Copy as cURL
    • Putar ulang panggilan API yang tepat di terminal

    4. Kolom Initiator
    • Menunjukkan JavaScript mana yang memicu panggilan API
    • Klik untuk melompat ke kode sumber

    5. Ukuran Respons
    • Periksa kolom "Size" untuk ukuran payload
    • Identifikasi respons API yang berat

    Alat Pengembang Firefox

    Fitur Penampil JSON:
    • Deteksi JSON otomatis dalam respons
    • Tampilan pohon yang dapat diciutkan
    • Alihan RAW/Parsed
    • Pencarian mirip JSONPath

    Cara Menggunakan:
  • Buka tab Network
  • Klik permintaan API
  • Klik tab "Response"
  • Nikmati JSON yang diformat
  • ---

    Men-debug Masalah API Umum

    Masalah 1: Kesalahan CORS

    Gejala:
    Access to fetch at 'https://api.example.com' from origin 'http://localhost:3000' 
    

    has been blocked by CORS policy

    Debugging:
  • Periksa tab Network → Response headers
  • Cari:
  • Access-Control-Allow-Origin: 

    Access-Control-Allow-Methods: GET, POST

  • Verifikasi request headers cocok dengan header yang diizinkan
  • Perbaikan Cepat untuk Pengembangan:
    // Gunakan proxy di package.json (React)
    

    {

    "proxy": "https://api.example.com"

    }

    // Atau gunakan proxy CORS untuk pengujian

    fetch('https://cors-anywhere.herokuapp.com/https://api.example.com/data')

    Masalah 2: Kegagalan Autentikasi

    Respons yang Diharapkan:
    {
    

    "data": { ... }

    }

    Respons Aktual:
    {
    

    "error": "Unauthorized",

    "message": "Token tidak valid atau kedaluwarsa"

    }

    Daftar Periksa Debugging:
    • [ ] Token disertakan dalam permintaan?
    • [ ] Nama header benar? (Authorization: Bearer )
    • [ ] Token kedaluwarsa? Periksa klaim exp dalam JWT
    • [ ] Format token benar? (JWT vs kunci API)

    Periksa Header di DevTools:
    Request Headers:
    

    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

    Masalah 3: Tipe Data Tidak Terduga

    Masalah:
    const response = await fetch('/api/user/123');
    

    const data = await response.json();

    // Mengharapkan angka (number), mendapatkan string

    console.log(typeof data.userId); // "string" ❌

    Debugging dengan Penampil JSON:
  • Periksa struktur respons aktual
  • Periksa penyorotan tipe
  • Tambahkan konversi tipe:
  • const userId = Number(data.userId);  // Konversi string ke angka
    

    const price = parseFloat(data.price); // Parse float

    const active = data.active === 'true'; // String ke boolean

    ---

    Alat & Ekstensi untuk Debugging Pro

    Ekstensi Browser

    1. JSON Formatter (Chrome/Firefox)
    • Memformat JSON secara otomatis di browser
    • Penyorotan sintaksis
    • Menciutkan/memperluas node

    2. JSONView (Chrome/Edge)
    • Tampilan pohon untuk JSON
    • Salin kunci dan nilai
    • URL yang dapat diklik

    3. REST Client (VS Code)
    • Buat panggilan API langsung di VS Code
    • Simpan koleksi permintaan
    • Variabel lingkungan

    Alat Command-Line

    cURL - Membuat Permintaan API:
    # Permintaan GET dasar
    

    curl https://api.example.com/users

    # Pretty print dengan jq

    curl https://api.example.com/users | jq .

    # Simpan respons

    curl https://api.example.com/users > response.json

    # Sertakan header dalam output

    curl -i https://api.example.com/users

    jq - Pemroses JSON:
    # Ekstrak field tertentu
    

    cat response.json | jq '.users[0].email'

    # Filter array

    cat response.json | jq '.users[] | select(.active == true)'

    # Transformasi data

    cat response.json | jq '.users | map({id, name})'

    httpie - Klien HTTP yang Ramah Pengguna:
    # Sintaksis bersih
    

    http GET https://api.example.com/users

    # POST dengan JSON

    http POST https://api.example.com/users name=Alice email=alice@example.com

    # Pemformatan JSON otomatis

    http https://api.example.com/users --pretty=all

    Aplikasi Desktop

    Postman:
    • Manajemen koleksi
    • Variabel lingkungan
    • Pengujian otomatis
    • Server Mock

    Insomnia:
    • Antarmuka yang bersih
    • Dukungan GraphQL
    • Pembuatan kode
    • Ekosistem plugin

    Paw (macOS):
    • UI yang indah
    • Nilai dinamis
    • Sinkronisasi tim

    ---

    Membangun Alur Kerja Debugging

    Proses Langkah demi Langkah

    1. Tangkap Permintaan
    # Simpan detail permintaan
    

    curl 'https://api.example.com/data' \

    -H 'Authorization: Bearer TOKEN' \

    -H 'Content-Type: application/json' \

    --data '{"query":"test"}' \

    > request.txt

    2. Periksa Respons
    • Buka di BigJSON Viewer
    • Periksa kode status
    • Verifikasi struktur respons

    3. Bandingkan dengan Dokumentasi
    • Field yang diharapkan vs yang aktual
    • Ketidakcocokan tipe
    • Data yang hilang

    4. Uji Variasi
    • Ubah parameter
    • Coba endpoint yang berbeda
    • Modifikasi header

    5. Dokumentasikan Temuan
    <h2 id="laporan-bug-api-pengguna-mengembalikan-email-null" class="text-2xl font-bold mt-10 mb-5 text-foreground border-b border-gray-200 dark:border-gray-700 pb-2">Laporan Bug: API Pengguna Mengembalikan Email Null</h2>
    
    Endpoint: GET /api/users/123  
    Diharapkan: { "email": "user@example.com" }  
    Aktual: { "email": null }  
    Langkah: Pengguna harus memverifikasi email terlebih dahulu  
    Perbaikan: Tambahkan pemeriksaan verifikasi email

    ---

    Praktik Terbaik

    LAKUKAN:

    Gunakan kontrol versi untuk contoh API

    git/
    

    ├── api-examples/

    │ ├── users-get-200.json

    │ ├── users-get-404.json

    │ └── users-post-201.json

    Buat kasus pengujian yang dapat digunakan kembali

    describe('User API', () => {
    

    it('returns user with email', async () => {

    const response = await fetch('/api/users/1');

    const data = await response.json();

    expect(data.email).toBeDefined();

    });

    });

    Dokumentasikan keunikan API

    // Catatan: API mengembalikan harga sebagai string, bukan angka
    

    const price = parseFloat(response.price);

    JANGAN:

    Log data sensitif

    // ❌ Buruk
    

    console.log('User response:', response); // Mungkin berisi token!

    // ✅ Baik

    console.log('User fetched:', { id: response.id, name: response.name });

    Asumsikan struktur respons

    // ❌ Buruk
    

    const email = response.user.email; // Macet jika user null

    // ✅ Baik

    const email = response?.user?.email ?? 'Tidak ada email';

    Abaikan respons kesalahan

    // ❌ Buruk
    

    const data = await fetch('/api/data').then(r => r.json());

    // ✅ Baik

    const response = await fetch('/api/data');

    if (!response.ok) {

    const error = await response.json();

    console.error('API error:', error);

    throw new Error(error.message);

    }

    const data = await response.json();

    ---

    Kesimpulan

    Kuasai debugging API dengan:

  • Pilih penampil JSON yang tepat - Gunakan BigJSON untuk file besar
  • Pelajari pintasan keyboard - Navigasi 10x lebih cepat
  • Gunakan JSONPath - Temukan data dengan presisi
  • Validasi terhadap skema - Tangkap ketidakcocokan tipe
  • Bangun alur kerja debugging - Proses yang konsisten = perbaikan lebih cepat
  • Langkah Anda Selanjutnya

  • Coba BigJSON Viewer - Tangani berbagai ukuran respons API
  • Instal ekstensi browser - JSON Formatter atau JSONView
  • Pelajari jq - Penguasaan JSON baris perintah
  • Siapkan koleksi Postman - Hemat waktu pada panggilan API berulang
  • Simpan panduan ini - Anda akan merujuknya setiap kali men-debug API!

    ---

    Sumber Daya Terkait

    ---

    Terakhir diperbarui: 15 Februari 2026
    Share:

    Artikel Terkait

    Read in English