tutorial

10 Menyiapkan Playground GraphQL untuk Testing Query

10 Menyiapkan Playground GraphQL untuk Testing Query

GraphQL mulai menjadi standar de facto dalam mengelola data API karena keunggulannya dalam fleksibilitas query dan efisiensi data. Namun, proses testing query kadang menjadi tantangan tersendiri, terutama jika Anda baru terjun ke dunia GraphQL atau belum mengetahui tool yang tepat. Playground GraphQL adalah solusi favorit banyak engineer untuk eksplorasi dan pengujian query sebelum masuk tahap implementasi production code. Pada artikel ini, kita akan melalui 10 langkah praktis menyiapkan Playground GraphQL agar proses testing query menjadi seamless dan efisien.


1. Apa Itu Playground GraphQL?

Playground GraphQL adalah antarmuka interaktif berbasis web yang memungkinkan developer untuk melakukan query, mutation, dan bahkan subscription pada API GraphQL. Ia ibarat “Postman”-nya ekosistem GraphQL, tapi lebih interaktif dan menyenangkan dipakai untuk eksperimen query.

Beberapa fitur utamanya:

  • Dokumentasi schema otomatis
  • Otocompletion Syntax
  • Support header kustom (misal, Authorization)
  • History query & variable simulasi
  • Berbagai environment endpoint

Tool populer untuk Playground antara lain: GraphQL Playground (original), Altair, Apollo Sandbox, dan Insomnia.


2. Instalasi Playground

Untuk development lokal, ada dua opsi utama:

Contoh penambahan Playground pada Express.js:

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
const { expressPlayground } = require('graphql-playground-middleware');

const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

const root = {
  hello: () => 'Hello world!'
};

const app = express();

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: false
}));

app.get('/playground', expressPlayground({ endpoint: '/graphql' }));

app.listen(4000, () => console.log('Server berjalan di http://localhost:4000/playground'));

3. Koneksi ke Playground

Setelah instalasi, buka browser ke endpoint Playground, misal http://localhost:4000/playground. Anda akan melihat UI interaktif seperti berikut:

Playground GraphQL UI

Di sisi kiri, Anda bisa menuliskan query. Hasil response akan muncul di kanan.


4. Menyelami Dokumentasi Otomatis

Salah satu nilai tambah utama Playground adalah dokumentasi live berbasis schema. Cukup klik ikon “Docs” dan akan muncul pohon schema, lengkap dengan tipe data, field, dan deskripsi.

Simulasi Dokumentasi:

TipeFieldDeskripsi
Queryhello: StringGreeting text
MutationcreateUserBuat user baru

Fitur ini sangat membantu saat mengeksplorasi API baru tanpa harus membaca dokumen tangan.


5. Percobaan Query Dasar

Mari mulai dengan menulis query sederhana:

query {
  hello
}

Respon yang Diharapkan:

{
  "data": {
    "hello": "Hello world!"
  }
}

Perhatikan auto-complete field dan type check secara real time. Ini akan menghemat waktu debugging typo.


6. Menambahkan Variable pada Query

Playground mengizinkan penggunaan variable untuk simulasi skenario dynamic.

query SayHello($name: String!) {
  hello(name: $name)
}

Isi variable di tab QUERY VARIABLES di bawah editor:

{
  "name": "Budi"
}

7. Simulasi Authorization

Seringkali API GraphQL butuh header Authorization. Playground memudahkan penambahan header lewat icon HTTP HEADERS di kanan atas.

{
  "Authorization": "Bearer YOUR_SECRET_TOKEN"
}

Simak diagram alur berikut untuk request ber-header:

sequenceDiagram
    participant U as User
    participant P as Playground
    participant S as GraphQL Server

    U->>P: Menulis query & masukkan token di HTTP HEADERS
    P->>S: Mengirim query main endpoint + Authorization header
    S->>P: Validasi token, proses query, kirim response
    P->>U: Tampilkan response di UI

8. Testing Mutation dan Error Handling

Mutasi tak kalah penting dari query.

mutation {
  createUser(username: "budi", password: "pass123") {
    id
    username
  }
}

Skenario error bisa disimulasikan dengan input salah:

mutation {
  createUser(username: "", password: "")
}

Respon error ditampilkan elegan, baik stack trace dan pesan error custom.


9. Multi-Environment & Mock Data

Anda bisa ganti endpoint Playground dengan environment berbeda, misal staging/production, ataupun menggunakan tool mocking seperti https://mocki.io/ untuk schema palsu.

EnvEndpoint
Staginghttps://staging-api.com/graphql
Productionhttps://api.com/graphql
Mockhttps://mocki.io/v1/1234

Tinggal klik di setting, tak perlu restart server.


10. Real Case: Testing Aplikasi

Sebagai penutup, berikut workflow test query sebelum frontend konsumsi:

flowchart TD
    A[Frontend Dev buka Playground]
    B[Menulis query kebutuhan fitur baru]
    C[Mengecek response dan simulasi variable]
    D[Testing dengan header Auth]
    E[Query siap dikonsumsi Frontend]

    A --> B --> C --> D --> E

Langkah ini memastikan integrasi berjalan smooth tanpa API miss, meningkatkan produktivitas tim frontend-backend.


Penutup

Memanfaatkan Playground GraphQL adalah workflow wajib setiap engineer modern saat development dan testing query. Dari eksplorasi schema, simulasi authorization, hingga error testing, semua bisa dilakukan dalam satu UI. Banyak tim engineering bahkan membuat query Playground sebagai bagian automatisasi dokumentasi dan regression test sebelum rilis API ke aplikasi production.

Jadikan Playground ini sebagai “laboratorium” mini sebelum query GraphQL benar-benar dikonsumsi aplikasi — karena debugging terbaik adalah yang dilakukan di level playground, bukan di production!

comments powered by Disqus