GraphQL

GraphQL adalah bahasa query dan model eksekusi untuk API. Awalnya dikembangkan Facebook, kini GraphQL merupakan standar terbuka. Client memilih field yang dibutuhkan dari schema bertipe, lalu server menjalankan resolver untuk mengambil datanya.

Cara kerja

Implementasi HTTP umumnya memakai satu endpoint, seperti /graphql. Client mengirim operasi berikut:

Contoh query berikut hanya meminta nama produk, jika field tersebut tersedia dalam schema:

query {
  product(id: "42") {
    name
  }
}

Schema menentukan field, tipe, dan operasi yang tersedia. GraphQL bukan database dan tidak mewajibkan transport HTTP.

Kapan berguna

GraphQL cocok ketika beberapa client membutuhkan bentuk data berbeda atau satu tampilan mengambil banyak data yang saling berhubungan. Pemilihan field dapat mengurangi over-fetching (data berlebih) dan under-fetching (data belum cukup).

Dibanding REST, GraphQL memberi client lebih banyak kendali atas bentuk response. Namun, GraphQL tidak otomatis lebih cepat atau lebih sederhana. REST tetap memadai untuk banyak API berbasis resource.

Batasan

Sumber