コンセプト、アイデア、戦略APIヒエラルキーのための戦略
APIヒエラルキーのための戦略
APIエンドポイントのヒエラルキーを構築するために、さまざまなアイデアを適用することができます。
クエリ優先、スキーマをオーバーライド
共通のGraphQLクエリを親に定義し、各アプリケーションに合わせて拡張することができます。
たとえば、親のパーシストクエリ /graphql-query/posts/ は次のGraphQLクエリを定義します。
query GetPosts {
posts {
id
title
url
}
}そして、ウェブサイトとモバイルアプリ向けの子パーシストクエリは、対応するスキーマ設定を指定します。
/graphql-query/posts/website/=> スキーマ設定"Website"を使用/graphql-query/posts/mobile-app/=> スキーマ設定"Mobile app"を使用
スキーマ優先、クエリをオーバーライド
あるいは、親レベルでスキーマ設定を宣言し、すべての子がそれを継承した上で、GraphQLクエリのみを実装することもできます。
/graphql-query/mobile-app/posts//graphql-query/mobile-app/users//graphql-query/website/posts//graphql-query/website/users/
エンドポイントの翻訳
変数を通じて言語コードを指定することで、エンドポイント内のコンテンツを翻訳します。この変数は子エンドポイントでオーバーライドできます。
たとえば、次のGraphQLクエリを使ったパーシストクエリ /graphql-query/posts/ を作成できます。
query GetTranslatedPosts($lang: String!) {
posts {
title @strTranslate(from: "en", to: $lang)
url
}
}このエンドポイントを直接実行する必要はないため、無効にしておくことができます。
次に、GraphQL変数をオーバーライドする子パーシストクエリ /graphql-query/posts/french/ を作成します。
{
"lang": "fr"
}