Membuat API
Membuat APIMembuat endpoint kustom

Membuat endpoint kustom

Selain endpoint tunggal, Gato GraphQL juga mendukung endpoint kustom, untuk mengambil dan mengirim data pada skema kustom (yang hanya memuat sebagian dari tipe yang tersedia) beserta aturan validasi pengguna, guna memenuhi kebutuhan berbagai pengguna dan aplikasi.

Kita dapat membuat sebanyak mungkin endpoint kustom sesuai kebutuhan.

Misalnya, kita dapat membuat endpoint kustom untuk:

  • Klien atau pengguna tertentu, di bawah /graphql/my-client/
  • Sekelompok pengguna dengan akses lebih ke fitur-fitur (seperti pengguna PRO), di bawah /graphql/pro-users/
  • Menyediakan data ke aplikasi mobile kita, di bawah /graphql/mobile-app/
  • Memberikan akses ke API pihak ketiga, di bawah /graphql/external-api/
  • Lainnya

Editor Endpoint Kustom

Menjalankan endpoint kustom dalam aplikasi

Ikuti petunjuk pada panduan Menghubungkan ke server GraphQL dari klien.

Mengakses semua endpoint kustom

Dengan mengklik "Custom Endpoints" pada menu plugin, daftar semua endpoint kustom yang telah dibuat akan ditampilkan:

Endpoint Kustom di admin
Endpoint Kustom di admin

Membuat endpoint kustom baru

Klik tombol "Add New GraphQL endpoint" untuk membuka editor WordPress:

Membuat Endpoint Kustom baru

Beri judul, pastikan permalink sudah sesuai yang diinginkan, pilih konfigurasi skema, dan sesuaikan opsinya. Setelah siap, klik tombol Publish, dan endpoint kustom pun dibuat menggunakan permalink yang dikonfigurasi sebagai URL endpoint.

Tautan ke endpoint (serta sumber dan klien) ditampilkan di panel sidebar "Custom Endpoint Overview":

Custom Endpoint Overview

Konfigurasi skema

Menentukan elemen apa saja yang dimuat skema, serta akses apa yang akan dimiliki pengguna terhadapnya, didefinisikan dalam konfigurasi skema.

Oleh karena itu kita harus membuat konfigurasi skema, lalu memilihnya dari dropdown (atau tidak menggunakan satu pun, atau menggunakan yang default):

Memilih konfigurasi skema

Endpoint privat

Dengan mengatur status Endpoint Kustom menjadi private, endpoint hanya dapat diakses oleh pengguna admin. Ini mencegah data kita dibagikan secara tidak sengaja kepada pengguna yang tidak seharusnya memiliki akses.

Misalnya, kita dapat membuat Endpoint Kustom privat untuk membantu mengelola aplikasi, seperti mengambil data untuk membuat laporan dengan metrik kita.

Endpoint Kustom Privat

Endpoint yang dilindungi kata sandi

Jika kita membuat Endpoint Kustom untuk klien tertentu, kita dapat menetapkan kata sandi untuk endpoint tersebut, guna memberikan tingkat keamanan tambahan sehingga hanya klien tersebut yang dapat mengakses endpoint.

Endpoint Kustom yang dilindungi kata sandi

Saat pertama kali mengakses endpoint yang dilindungi kata sandi (baik mengakses endpoint secara langsung, maupun klien GraphiQL atau Interactive Schema-nya), kita akan menemukan layar yang meminta kata sandi:

Endpoint Kustom yang dilindungi kata sandi: Akses pertama

Setelah kata sandi diberikan dan divalidasi, barulah pengguna dapat mengakses endpoint atau klien yang dituju:

Endpoint Kustom yang dilindungi kata sandi: Setelah otorisasi

Membuat hierarki endpoint

Baca petunjuk tentang membuat hierarki API.

Menonaktifkan endpoint kustom

Di opsi, atur "Enabled" ke false untuk menonaktifkan endpoint kustom.

Fitur ini berguna ketika menjadikan endpoint kustom sebagai bagian dari hierarki API, untuk memberikan perilaku umum kepada endpoint kustom anaknya, tanpa perlu endpoint itu sendiri dieksekusi.

Mendeskripsikan endpoint kustom

Gunakan field "Excerpt" di panel pengaturan Dokumen, untuk memberikan deskripsi pada endpoint kustom.

Temukan informasi lebih lanjut di panduan Menambahkan deskripsi ke API.

Klien endpoint

Setiap endpoint kustom memiliki kumpulan kliennya sendiri untuk berinteraksi.

Klien GraphiQL

Tambahkan ?view=graphiql ke endpoint untuk mengakses klien GraphiQL-nya:

Klien GraphiQL endpoint kustom

Klien GraphiQL juga dapat dibuka saat mengedit Endpoint Kustom, di bawah panel sidebar "Custom Endpoint Overview":

Tautan ke klien GraphiQL endpoint kustom di editor

Demikian pula, klien dapat dibuka dari halaman daftar Endpoint Kustom, pada tautan "GraphiQL" saat mengarahkan kursor ke entri:

Tautan ke klien GraphiQL endpoint kustom di daftar
Tautan ke klien GraphiQL endpoint kustom di daftar

Untuk menonaktifkan klien GraphiQL, atur opsi "Expose GraphiQL client?" ke false di editor Endpoint Kustom.

Klien Interactive Schema (Voyager)

Tambahkan ?view=schema ke endpoint untuk mengakses klien Interactive Schema-nya, guna memvisualisasikan dan berinteraksi dengan skema endpoint:

Klien Voyager endpoint kustom

Klien Interactive Schema juga dapat dibuka saat mengedit Endpoint Kustom, di bawah panel sidebar "Custom Endpoint Overview":

Tautan ke klien Interactive Schema endpoint kustom di editor

Demikian pula, klien dapat dibuka dari halaman daftar Endpoint Kustom, pada tautan "Interactive Schema" saat mengarahkan kursor ke entri:

Tautan ke klien Interactive Schema endpoint kustom di daftar
Tautan ke klien Interactive Schema endpoint kustom di daftar

Untuk menonaktifkan klien Interactive Schema, atur opsi "Expose the Interactive Schema client?" ke false di editor Endpoint Kustom.

Menguji endpoint sebelum dipublikasikan secara online

Endpoint kustom dengan status draft atau pending hanya tersedia untuk pengguna editor skema. Ini memberi mereka kemampuan untuk:

  • Mengeksekusi GraphQL queries terhadapnya
  • Mengakses klien GraphiQL dan Voyager endpoint

Kemudian, kita dapat membuat endpoint kustom, menetapkan Konfigurasi Skema, mempublikasikannya sebagai draft atau pending, dan mengujinya (misalnya: memeriksa bahwa aturan Kontrol Aksesnya sudah sesuai).

Setelah disetujui, barulah kita mengatur statusnya menjadi publish, sehingga endpoint kustom tersedia untuk semua orang.

Melihat sumber

Dengan menambahkan ?view=source ke endpoint, konfigurasi endpoint akan ditampilkan (selama pengguna telah login dan peran pengguna memiliki akses ke sana):

Sumber endpoint kustom


Konfigurasi di editor WordPress

Berikut adalah input di body editor:

InputDeskripsi
TitleJudul endpoint kustom
Schema configurationDari dropdown, pilih konfigurasi skema yang berlaku untuk endpoint kustom, atau salah satu opsi berikut:
  • "Default": konfigurasi skema adalah yang dipilih di Pengaturan plugin
  • "None": endpoint kustom tidak akan dibatasi
  • "Inherit from parent": gunakan konfigurasi skema yang sama seperti endpoint kustom induk.
    Opsi ini tersedia ketika modul "API Hierarchy" diaktifkan, dan endpoint kustom memiliki query induk (dipilih di pengaturan Dokumen)
OptionsSesuaikan perilaku endpoint kustom:
  • Enabled?: apakah endpoint kustom diaktifkan.
    Berguna untuk menonaktifkan endpoint kustom jika merupakan query induk dalam hierarki API
  • Expose GraphiQL client?: aktifkan/nonaktifkan pemasangan klien GraphiQL ke endpoint, dapat diakses di bawah ?view=graphiql
  • Expose the Interactive Schema client?: aktifkan/nonaktifkan pemasangan klien Interactive Schema ke endpoint, dapat diakses di bawah ?view=schema
  • Inherit query from ancestor(s)?: gunakan query yang sama dengan endpoint kustom induk.
    Opsi ini tersedia ketika modul "API Hierarchy" diaktifkan, dan endpoint kustom memiliki query induk (dipilih di pengaturan Dokumen)

Berikut adalah input di pengaturan Dokumen:

InputDeskripsi
PermalinkEndpoint tempat endpoint kustom akan tersedia
CategoriesDapat mengkategorikan endpoint kustom.
Mis.: mobile, app, dll
ExcerptBerikan deskripsi untuk endpoint kustom.
Input ini tersedia ketika modul "Excerpt as Description" diaktifkan
Page attributesPilih endpoint kustom induk.
Input ini tersedia ketika modul "API Hierarchy" diaktifkan