Koncepcje, Idee, Strategie
Koncepcje, Idee, StrategieStrategie dla hierarchii API

Strategie dla hierarchii API

Możemy stosować różne podejścia do konfigurowania hierarchii dla naszych endpointów API.

Najpierw query, nadpisanie schematu

Możemy zdefiniować element nadrzędny zawierający wspólne zapytanie GraphQL, a następnie rozszerzyć je dla każdej z różnych aplikacji.

Na przykład nadrzędna persisted query /graphql-query/posts/ zdefiniuje zapytanie GraphQL:

query GetPosts {
  posts {
    id
    title
    url
  }
}

A podrzędne persisted queries, dla strony internetowej i aplikacji mobilnej, ustawią odpowiednią konfigurację schematu:

  • /graphql-query/posts/website/ => używa konfiguracji schematu "Website"
  • /graphql-query/posts/mobile-app/ => używa konfiguracji schematu "Mobile app"

Najpierw schemat, nadpisanie query

Alternatywnie możemy zadeklarować konfigurację schematu na poziomie nadrzędnym, a następnie wszystkie elementy podrzędne dziedziczą ją i implementują jedynie zapytanie GraphQL:

  • /graphql-query/mobile-app/posts/
  • /graphql-query/mobile-app/users/
  • /graphql-query/website/posts/
  • /graphql-query/website/users/

Tłumaczenie endpointu

Tłumacz treść w endpoincie, podając kod języka za pomocą zmiennej, którą może nadpisać podrzędny endpoint.

Na przykład możemy utworzyć persisted query /graphql-query/posts/ z następującym zapytaniem GraphQL:

query GetTranslatedPosts($lang: String!) {
  posts {
    title @strTranslate(from: "en", to: $lang)
    url
  }
}

Nie musimy wykonywać tego endpointu bezpośrednio, więc może być wyłączony.

Następnie tworzymy podrzędną persisted query /graphql-query/posts/french/, która nadpisuje zmienną GraphQL:

{
  "lang": "fr"
}