Saya menggunakan titik akhir GraphQL tertentu dan meskipun saya menyediakan struktur JSON yang bersih sebagai kueri, ketika saya mendapatkan hasil, saya mendapatkan tag "edge" dan "node". Sepertinya itu mencemari data saya tanpa manfaat yang jelas. Mengapa itu ada dan apakah mungkin untuk menyingkirkannya untuk penguraian data yang lebih cepat dan lebih sederhana?
104
Jawaban:
Mari kita mulai dengan pengantar singkat dengan kata-kata sederhana
Spesifikasi GraphQl Relay
Koneksi:
edges
,pageInfo
...pageInfo akan berisi
hasNextPage
,hasPreviousPage
,startCursor
,endCursor
hasNextPage
akan memberi tahu kami jika ada lebih banyak edge yang tersedia, atau jika kami telah mencapai akhir dari koneksi ini.Array catatan: tepi
GraphQLList
tetapi tanpa fungsi seperti pagination, hanya dengan array objek (data)Setiap sisi memiliki
node
: catatan atau datacursor
: string yang dikodekan base64 untuk membantu menyampaikan dengan paginationhttps://facebook.github.io/relay/graphql/connections.htm
Node:
connectionArgs(first, last, after, before)
Paginasi Relai berfungsi sebagai
Mengambil semua objek dalam koleksi dan mengembalikan potongan berdasarkan
first/last
catatan x, digunakan melalui connectionArgsafter/before
digunakan untuk menunjukkan ke server GraphQL jumlah potongan (data) yang diperlukan menggunakan kursor dari nodeAda banyak hal yang perlu dipertimbangkan seperti
nodeDefinitions
,globalFieldId
,nodeInterfaces
https://github.com/graphql/graphql-relay-js#object-identification
sumber
each node will have a cursor
, sebaliknyaeach edge will have a cursor
, lihat blog itu.apollographql.com/…