Kavramlar, Fikirler, Stratejiler
Kavramlar, Fikirler, StratejilerAPI Hiyerarşileri için Stratejiler

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"
}