コンセプト、アイデア、戦略
コンセプト、アイデア、戦略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"
}