Membuat API
Membuat APIMembuat hierarki API

Membuat hierarki API

Custom endpoint dan persisted query dapat diorganisasi menjadi sebuah hierarki. Hal ini dicapai ketika mereka mendeklarasikan induk, di mana jalur endpoint mereka akan memperluas jalur endpoint induk.

Misalnya, kita dapat membuat hierarki ini:

  • Persisted query induk: /graphql-query/posts/
  • Persisted query anak: /graphql-query/posts/english/
  • Persisted query anak: /graphql-query/posts/french/

Jumlah level tidak terbatas, sehingga kita juga dapat membuat:

  • /graphql-query/posts/
  • /graphql-query/posts/mobile-app/
  • /graphql-query/posts/mobile-app/english/
  • /graphql-query/posts/mobile-app/french/
  • /graphql-query/posts/website/
  • /graphql-query/posts/website/english/
  • /graphql-query/posts/website/french/

Lihat panduan Strategies for API hierarchies untuk melihat kemungkinan konfigurasinya.

Pewarisan properti

Custom endpoint dan persisted query anak akan mewarisi properti dari induk.

Custom endpoint dan persisted query

Custom endpoint dan persisted query anak akan mewarisi konfigurasi skema dari induk.

Hanya persisted query

Persisted query anak juga akan mewarisi GraphQL query dan variabel dari induk. Nilai untuk variabel dapat ditimpa oleh anak, satu variabel per variabel.

Misalnya, jika induk mendeklarasikan variabel-variabel ini:

{
  "limit": 5,
  "offset": 0
}

Dan anak mendeklarasikan variabel-variabel ini:

{
  "limit": 10
}

Maka, variabel yang dihitung untuk anak akan menjadi:

{
  "limit": 10,
  "offset": 0
}

Membuat hierarki API

Pada custom endpoint atau persisted query, di pengaturan Dokumen, terdapat bagian Page Attributes dengan dropdown semua entitas lainnya, untuk dipilih sebagai induk:

Pewarisan API

Persisted query

Saat memilih induk, pada persisted query akan muncul opsi baru, "Inherit query from ancestor(s)?"

Atur opsi ini ke Yes, agar persisted query anak mewarisi GraphQL query dari induk:

Pewarisan API

Contoh

Persisted query ini mendefinisikan GraphQL query-nya, dan mendeklarasikan variabel $limit dengan nilai 1:

Persisted query induk

Sebuah persisted query anak memperluas persisted query tersebut, mewarisi GraphQL query, dan menimpa nilai variabel $limit menjadi 2:

Persisted query anak