API Hiyerarşileri için Stratejiler
API uç noktalarımız için bir hiyerarşi oluşturmaya yönelik farklı fikirler uygulayabiliriz.
Önce query, şemayı geçersiz kıl
Üst öğeyi ortak bir GraphQL query içerecek şekilde tanımlayabilir, ardından farklı uygulamaların her biri için genişletebiliriz.
Örneğin, üst persisted query /graphql-query/posts/ şu GraphQL query'yi tanımlayacaktır:
query GetPosts {
posts {
id
title
url
}
}Web sitesi ve mobil uygulama için alt persisted query'ler ise ilgili şema yapılandırmasını ayarlayacaktır:
/graphql-query/posts/website/=>"Website"şema yapılandırmasını kullan/graphql-query/posts/mobile-app/=>"Mobile app"şema yapılandırmasını kullan
Önce şema, query'yi geçersiz kıl
Alternatif olarak, şema yapılandırmasını üst düzeyde belirleyebiliriz; böylece tüm alt öğeler bunu devralır ve yalnızca GraphQL query'yi uygular:
/graphql-query/mobile-app/posts//graphql-query/mobile-app/users//graphql-query/website/posts//graphql-query/website/users/
Uç noktayı çevir
Bir uç noktadaki içeriği, alt uç nokta tarafından geçersiz kılınabilecek bir değişken aracılığıyla dil kodu sağlayarak çevirin.
Örneğin, şu GraphQL query ile /graphql-query/posts/ adında bir persisted query oluşturabiliriz:
query GetTranslatedPosts($lang: String!) {
posts {
title @strTranslate(from: "en", to: $lang)
url
}
}Bu uç noktayı doğrudan çalıştırmamıza gerek yoktur, dolayısıyla devre dışı bırakılabilir.
Ardından, GraphQL değişkenini geçersiz kılan /graphql-query/posts/french/ adında bir alt persisted query oluştururuz:
{
"lang": "fr"
}