2017-05-25 8 views
2

Meteorメソッドを使用してクライアントからリクエストを受け取り、サーバー上でデータベース操作を実行する既存のコードベースがあります。私はこのプロジェクトをGraphQLに移行しようとしていますが、その作業の範囲、特にこれらのMeteorメソッドの意味を理解することができません。Meteor Methods vs. GraphQL Mutations

A)Graphe は、メテオールメソッドを置き換えますか?ですから、私はこのロジックをGraphQLのクエリ、リゾルバ、および突然変異の中に再実装しますか?

B)Graphe はMeteorメソッドを使用してで動作しますか?すなわち、クライアントはMeteorメソッドを呼び出します。これは、内部でサーバー上の1つまたは複数の突然変異を呼び出しますか?

C)Graphe は、別個の懸念を伴うMeteorメソッドを使用してと並行して動作しますか?つまり、すべてのデータベース操作はクライアント側の突然変異呼び出しに委ねられますが、他のすべてのプロセス(電子メールやその他のジョブの実行など)はMeteorメソッド内でまだ発生します。

このトピックに関するいくつかの明確化を見つけることを願っています。ありがとう!

答えて

2

答えは3つありますが、決定を下してそれに固執する必要があります。

私は個人的にクライアントからのコードを隠す/入力をメソッドに検証するためのMeteorメソッドを使用しました。この意味でgraphQLに切り替えたとき、私は流星の方法と流星のDPPモデルを完全に「置き換えた」。

しかし、実際には、GraphQLリゾルバの内部で流星法を呼び出すことを止めるものはありません。リゾルバはサーバ側であるため、これを行う本当の理由はありません。

しかし、Validateが必要な非常に可変な構造(例えばXMLファイル)のデータを処理するためのMeteorメソッドを保存することができますが、GraphQLがクエリする「正確な」構造を与えることはできませんミューテーターが要求する。そういう意味では、メテオの方法は厳格ではないので、2つは "一緒に働く"ことができます。つまり、GraphQLメソッドを使用すると、キャッシュの正規化、データをフィルタリングしたり、取得したいものだけを取得したり、サブスクリプションを取得するなど、流星法だけでは得られない利点がたくさんあります。