【ぐらふきゅーえるふぇでれーしょん】
GraphQL Federation とは?
最終更新:
💡 APIの担当は分けても、利用する窓口はひとつに
分担して作る複数のAPIを、クライアントに1つのGraphQL APIとして公開する仕組み。Apollo Federationではサブグラフのスキーマを構成し、ルーターが必要な問い合わせと結果の統合を行う。
📌 このページのポイント
普通のGraphQLとは、別物?
どうやって一つにするの?
別サービスのデータは、つなげられる?
たとえば商品サービスが名前と価格、レビューサービスが評価を担当する場合だね。両方がProductの識別用フィールドupcを@keyで定めると、同じ商品について別のフィールドを扱える。識別子を書くだけで完成するわけではなく、実際にその商品を解決する処理も必要だよ。
窓口が一つなら、速くなる?
通信回数をクライアント側で減らせる場合はあるけれど、必ず速くなるわけではないよ。裏側で複数のサービスを順番に呼ぶ処理や、繰り返し取得が増える場合もある。問い合わせの計画と各サービスの処理を見て、実際の待ち時間を測ろう。
どんなときに導入するの?
📖 おまけ:英語の意味
「GraphQL Federation」 = GraphQL APIの連合
💬 担当ごとに分けたAPIを、利用する側には一つの仕組みとして見せるイメージだよ。