Strategi untuk Hierarki API
Kita dapat menerapkan berbagai ide untuk menyiapkan hierarki bagi endpoint API kita.
Query lebih dulu, timpa skema
Kita dapat mendefinisikan induk agar berisi query GraphQL yang umum, lalu memperluas untuk masing-masing aplikasi yang berbeda.
Misalnya, persisted query induk /graphql-query/posts/ akan mendefinisikan query GraphQL:
query GetPosts {
posts {
id
title
url
}
}Dan persisted query anak, untuk situs web dan aplikasi mobile, akan menetapkan konfigurasi skema yang sesuai:
/graphql-query/posts/website/=> gunakan schema configuration"Website"/graphql-query/posts/mobile-app/=> gunakan schema configuration"Mobile app"
Skema lebih dulu, timpa query
Sebagai alternatif, kita dapat mendeklarasikan konfigurasi skema di level induk, lalu semua anak mewarisinya, dan hanya mengimplementasikan query GraphQL:
/graphql-query/mobile-app/posts//graphql-query/mobile-app/users//graphql-query/website/posts//graphql-query/website/users/
Terjemahkan endpoint
Terjemahkan konten dalam sebuah endpoint dengan menyediakan kode bahasa melalui variabel, yang dapat ditimpa oleh endpoint anak.
Misalnya, kita dapat membuat persisted query /graphql-query/posts/ dengan query GraphQL ini:
query GetTranslatedPosts($lang: String!) {
posts {
title @strTranslate(from: "en", to: $lang)
url
}
}Kita tidak perlu mengeksekusi endpoint ini secara langsung, sehingga dapat dinonaktifkan.
Kemudian, kita membuat persisted query anak /graphql-query/posts/french/, yang menimpa variabel GraphQL:
{
"lang": "fr"
}