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