2017-11-29 9 views
0

私は建築的な疑問を抱いています。私の会社ではgraphqlを利用したいのですが、同じページにありました。しかし、私たちの組織には、バックエンドエンドのフロントエンドと呼ばれるものがあります(ここからのBFFは慣れていないとここに慣れています:http://samnewman.io/patterns/architectural/bff/)。彼ら自身が必要なものをgraphqlサーバに問い合わせます。次に、フロントエンドのRESTエンドポイントを公開したいと考えています。ここで、bffはこの中間層で、graphqlサーバーです。だから、これは次のようになります:フロントエンド1 =====>フロントエンド1のREST ====> BFF =======> graphql。彼らは、bffがgraphqlバックエンド全体の制限的なサブセットであることを望んでいます。ですから、私の質問はすべて二重のものです。私はこれを処理しなければならない場合、BFFに、休憩によって公開したいと思っていたのと同じスキーマを持つgraphqlサービスを作ることができますか? Graphqlを使って "far backend"から集約します。 Graphqlはクライアントのための神託ですので、私は不必要にエンドポイントのためのhttpリクエストを構築する上でそれを使用したいと思います。私が好むものが、彼らが示唆しているものほど理想的ではないことを示すものでさえ、あらゆるアドバイスにもオープンしています。GraphQLアーキテクチャ - 洞察力を求めて

答えて

0

あなたの意見では、あなたのRESTサービスの前にAPIプロキシを作成したいと思います。これは非常に一般的なアプローチで、例えばXingとGithub(私が知る限り)で実装されています。これは、ある時点でBFFレイヤーを削除します。それを元に戻す唯一の理由は、レガシークライアントをサポートすることです。これは、このGraphQLプロキシがBFFパターンのより良いバージョンであるためです。 This talk from GraphQL Europeが役に立ちます。あなたはGraphQLを学ぶのにもっと時間を費やしたいと思うかもしれません。一つの考え方は、Node.jsにバックエンドサービスを使ってGraphQLインターフェースを作るプロトタイプを作ることです。アプリケーションのサイズに応じて、これを別の言語(Scala + Sangria、Xingなど)で実装したい場合があります。

+0

迅速な対応に感謝します。これはまさに私がそれについて考えた方法です。しかし、私はそのように見ていないいくつかのリーダーシップを持っています。参照の話もありがとう。 – csevier

+0

私はGraphQLを打つと、アーキテクチャを示すいくつかの図を描きました。おそらく、これもあなたを助けることができます:https://www.dropbox.com/s/dljk8s4xbvxltm5 – Herku

+0

ありがとう。それはまさに私が思いついたことです。 – csevier

関連する問題