Memulai
MemulaiPengantar GraphQL dan Gato GraphQL

Pengantar GraphQL dan Gato GraphQL

Selamat datang di panduan Gato GraphQL. Di sini Anda akan menemukan banyak informasi tentang cara menginstal, mengonfigurasi, dan menggunakan plugin Gato GraphQL di situs WordPress Anda.

Apa itu GraphQL

GraphQL adalah spesifikasi API yang memungkinkan klien (seperti situs web di browser, atau aplikasi mobile) untuk menentukan secara tepat data apa yang mereka butuhkan, dan server yang mengimplementasikan API tersebut akan mengambil tepat itu.

Sebuah GraphQL query terlihat seperti ini:

query {
  posts {
    id
    title
    content
    author {
      id
      name
    }
  }
}

Respons dari server dalam format JSON, berisi data dengan bentuk yang sama seperti query. Tampilannya seperti ini:

{
  "data": {
    "posts": [
      {
        "id": 1,
        "title": "Hello world",
        "content": "<p>How are you doing?</p>",
        "author": {
          "id": 1,
          "name": "Leo"
        }
      },
      {
        "id": 2,
        "title": "Scheduled post",
        "content": "<p>This post is scheduled to be published in the future.</p>",
        "author": {
          "id": 2,
          "name": "Markus"
        }
      },
      {
        "id": 3,
        "title": "Lorem ipsum",
        "content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>",
        "author": {
          "id": 3,
          "name": "Socrates"
        }
      }
    ]
  }
}

Server GraphQL juga dapat "memutasi" (yaitu membuat dan memperbarui) data. Dalam hal ini, kata kunci operasi query harus diganti dengan mutation:

mutation {
  createPost(input: {
    title: "New post",
    contentAs: { html: "Lorem ipsum dolor sit amet" }
  }) {
    id
    status
  }
}

Lihat situs resmi GraphQL di graphql.org.

Apa itu Gato GraphQL

Gato GraphQL adalah plugin untuk WordPress yang mengubah situs menjadi server GraphQL, memungkinkan Anda mengambil dan memodifikasi data dari situs WordPress menggunakan bahasa GraphQL.

Gato GraphQL berupaya untuk menjadi:

Mudah digunakan

Filosofi WordPress adalah bahwa siapa pun, terlepas dari memiliki keahlian teknis atau tidak, harus dapat menggunakan perangkat lunak ini. Plugin ini berupaya memenuhi filosofi tersebut, dengan membuat proses pembuatan API dan berinteraksi dengannya semudah mungkin.

Sebagai contoh, Gato GraphQL memungkinkan untuk mempublikasikan persisted queries (yang merupakan endpoint yang mengekspos data yang telah ditentukan, mirip dengan REST endpoint) menggunakan antarmuka pengguna yang disediakan oleh editor WordPress; mirip dengan menulis sebuah posting, fitur ini dapat diakses oleh semua orang.

Cepat

Menyelesaikan sebuah GraphQL query biasanya memerlukan iterasi graf yang berisi data untuk semua entitas yang di-query. Semakin banyak node dalam graf, dan semakin dalam grafnya, proses ini akan semakin lambat (bahkan lambat secara eksponensial).

Gato GraphQL mengambil pendekatan yang berbeda: Plugin ini menggunakan struktur model komponen untuk menyelesaikan GraphQL query (bukan graf), yang melibatkan proses yang tumbuh secara linier sesuai kedalaman query (bukan secara eksponensial).

Selain itu, hanya elemen skema yang diminta dalam GraphQL query yang dikompilasi, divalidasi, dan dieksekusi, bukan seluruh skema GraphQL. Hasilnya, baik situs WordPress Anda memiliki 3 atau 30 Custom Post Type yang terpasang, waktu penyelesaian query akan tetap sama.

Powerful

API bertindak sebagai gerbang utama bagi klien untuk berinteraksi dengan server; penting bagi sebuah API untuk tidak dibatasi dalam hal apa pun, agar dapat memenuhi setiap kebutuhan.

Plugin ini memungkinkan untuk memodifikasi hasil eksekusi query, melalui fungsionalitas kustom, API eksternal, dan layanan berbasis cloud. Data yang di-query dapat diiterasi dan dimanipulasi sesuai kebutuhan, dan output dari query juga dapat diubah dengan cara apa pun yang diinginkan, sehingga hampir tidak ada hal yang tidak dapat dilakukan.

Aman

Sebuah GraphQL API bisa dengan mudah salah kelola, mengekspos akses ke semua data di situs WordPress kepada semua orang, termasuk pihak yang berniat jahat; server GraphQL perlu menyediakan langkah-langkah keamanan yang tepat, untuk memastikan bahwa hanya pengguna yang dituju yang dapat mengakses data.

Plugin ini sangat serius dalam hal keamanan, dan telah mengimplementasikan beberapa langkah keamanan secara native. Endpoint tunggal dapat dinonaktifkan; data dapat diekspos melalui persisted queries; pemberian akses ke data dilakukan melalui daftar kontrol akses yang dapat dikonfigurasi (berdasarkan apakah pengguna sudah login atau belum, memiliki peran atau kemampuan tertentu, atau aturan kustom); dan API dapat didefinisikan sebagai publik atau privat.

Berorientasi masa depan

GraphQL adalah standar yang terus berkembang, dan komunitas terus menyarankan ide-ide untuk menyediakan fungsionalitas baru, yang akan ditambahkan ke spesifikasi di masa mendatang.

Plugin ini tidak suka menunggu; plugin ini sudah mencakup banyak fungsionalitas baru yang telah diusulkan (seperti schema namespacing, multiple query execution, dan lainnya) sebagai fitur opt-in, sehingga harus diaktifkan secara eksplisit oleh admin.