Advanced Guides

Konfigurasi dan Kueri GraphQL dengan Parse dan Relay

15min

Kompatibilitas Relay

Pendahuluan

API GraphQL Parse Server mengikuti standar terbaru yang saat ini tersedia untuk API yang sangat skalabel dan proyek front-end yang ambisius.

Tim Open Source Parse memilih untuk mengikuti Spesifikasi Relay.

Relay adalah kerangka kerja JavaScript untuk membangun aplikasi React yang didorong oleh data yang didukung oleh GraphQL, dirancang dari awal untuk mudah digunakan, dapat diperluas, dan yang terpenting, berkinerja tinggi. Relay mencapai ini dengan kueri statis dan generasi kode di muka.

Mulai dari Parse 3.10, kompatibilitas penuh dengan Relay diimplementasikan. Dokumen ini akan memandu Anda melalui implementasi tersebut.

Prasyarat

Untuk memulai tutorial ini, Anda akan membutuhkan:

1 - Buat Aplikasi Baru di Back4App

Pertama-tama, perlu dipastikan bahwa Anda memiliki aplikasi yang sudah ada yang dibuat di Back4App. Namun, jika Anda adalah pengguna baru, Anda dapat memeriksa tutorial ini untuk belajar bagaimana cara membuatnya.

2 - Buat beberapa Kelas

Di Aplikasi baru Anda, pergi ke Database Browser dan klik tombol Buat kelas.

Document image


Pilih untuk membuat kelas Kustom dan berikan nama. Mengikuti skema contoh Relay, saya membuat kelas Faction, Ship, dan lainnya seperti yang dijelaskan dengan properti yang sesuai, tetapi Anda dapat membuat kelas Anda sendiri mengikuti dokumentasi ini. Cukup ubah kueri dan mutasi Anda sesuai. Ingat bahwa berdasarkan konvensi, kelas dimulai dengan huruf kapital, menggunakan CamelCase, dan tidak mengandung karakter khusus seperti spasi dan simbol. Klik Buat kelas ketika Anda selesai.

3 - Konsol GraphQL

Dengan Kelas dan Properti Anda yang telah dibuat, Anda dapat pergi ke Konsol API dan kemudian Konsol GraphQL untuk mengeksekusi kueri dan mutasi Anda.

Document image


4 - Kueri

Kueri pertama kami akan mengambil objek berdasarkan objectId (jangan bingung dengan id). Parse telah berkembang dan sekarang kueri mendukung kedua ObjectId, yang sebelumnya dikenal sebagai id di versi sebelumnya, tetapi sekarang juga mendukung Global Id, yang dikenal sebagai id, yang mengacu pada ID global Relay dan memiliki format yang lebih panjang karena mengandung nama kelas yang dienkripsi di dalamnya.

Contoh ObjectId: EaT0dDk09v Contoh id (alias ID Global): RmFjdGlvbjpFYVQwZERrMDl2

Mari kita buat kueri pertama kami yang mengambil objek berdasarkan ObjectId:

GraphQL


Itu akan menghasilkan

GraphQL


Sekarang, mari kita ubah itu untuk GlobalId untuk Relay:

GraphQL


Dan perhatikan bahwa hasilnya akan sama:

GraphQL


Ini terjadi karena Global Id bekerja, seperti namanya yang menunjukkan, secara global, dan memiliki nama kelas yang terenkripsi di dalamnya, sehingga Parse tahu di mana mencari ID tersebut.

5 - Mengambil Ulang

Juga dengan Global Id Anda dapat melakukan prefetch seperti spesifikasi Relay sebagai berikut:

GraphQL


yang akan menghasilkan

GraphQL


6 - Koneksi

Koneksi Relay bekerja dengan cara yang sama di Parse dengan GraphQL, jadi, jika Anda perlu mengambil kapal Rebel:

GraphQL


yang akan menghasilkan:

GraphQL


Anda juga dapat mengambil kapal Nth:

GraphQL


yang menghasilkan

GraphQL


Atau ambil kapal ke-N setelah yang spesifik, menggunakan nilai cursor-nya:

GraphQL


yang akan mengambil:

GraphQL


7 - Mutasi

Kita juga dapat menggunakan Mutasi yang kompatibel dengan mutasi Relay. Mari kita buat sebuah Kapal:

GraphQL


Itu membutuhkan Variabel Query berikut:

GraphQL


Dan akan mengembalikan Global Id dan nama seperti yang ditentukan dalam mutasi:

GraphQL