問題タブ [sangria]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2846 参照

facebook - Relayアプリ:サーバー上のスキーマをイントロスペクトする方法は?

リレースターターキットで遊んでいます。また、 sangriaを使用してグラフql サーバーを作成しました。今、私は2つを一緒に配線しようとしています。

Relay-starter-kit では、スキーマを変更するたびに、スクリプトを実行して schema.json ファイルを再生成する必要があります。しかし、graphql はスキーマのイントロスペクションをサポートしているので、起動時にサーバーからスキーマをイントロスペクトするようにリレー アプリを構成する方法があるかどうか疑問に思っています。

これが可能かどうか、またはこれを行う方法を知っている人はいますか?

0 投票する
1 に答える
659 参照

reactjs - Graphql/relay バックエンドとフロントエンドを分離

リレーを使用して、バックエンドとフロントエンドを異なるプロジェクトで分離したいと考えています。私がこれを行っている理由は、特定のリレー/graphql バックエンドである sangria を使用しており、フロントエンドの開発を Scala の開発とは別に維持したいからです。

別のgraphqlサーバーバックエンドと通信する1つのサーバー上の反応リレーフロントエンドアプリケーションを接続することは可能ですか. リレーは、そのエンドポイントがエンドポイント /graphql と同じホスト上にあると想定しているようです

0 投票する
3 に答える
462 参照

scala - サングリアで2.5をプレイ

Play with Sangria (さらにその上に Relay と React) を試してみたいと思います。これまでに見つけた Sangria の例は Play 2.4.2 で動作しますが、Play 2.5 ではより大きな変更がいくつかあるようです。Sangria の新しいバージョンを待つ方がよいでしょうか?それとも、今すぐ Play 2.5 にアップデートしても「安全」でしょうか?

0 投票する
3 に答える
1240 参照

scala - 任意の JSON の「デコーダー」を作成する

Finch、Circe、Sangria を使用して、API の GraphQL エンドポイントを構築しています。GraphQLvariablesクエリで取得される は、基本的に任意の JSON オブジェクトです (ネストがないと仮定しましょう)。たとえば、Strings としての私のテスト コードでは、2 つの例を次に示します。

Sangria API は、これらの の型を想定していますMap[String, Any]

私はたくさんの方法を試しましたが、これまでのところDecoderCirce でこれを書くことができませんでした。どんな助けでも感謝します。

0 投票する
1 に答える
481 参照

scala - 1つの要素リストを返すsangria graphqlクエリ

GraphQL サーバーとして sangria を使用しています。スキーマの関連部分は次のとおりです。

延期コードは

個々のオブジェクトに対してすべてが機能しますが、オブジェクトとその子をリクエストしようとすると、返される子は 1 つだけです

クエリ:

応答:

その通りです。リストのすべての要素がロードされていることをバックエンドで確認できますが、返されていないようです。

0 投票する
1 に答える
1257 参照

scala - Sangria GraphQL のオブジェクトのリゾルバーで要求されたフィールドを知る方法

Sangria GraphQL("org.sangria-graphql" %% "sangria" % "1.0.0-RC5") で GrapQL サーバーを構築しています。

通常、必要かどうかはわかりません。しかし、パフォーマンスを向上させるために、解決中にクライアントから要求されたフィールドを取得したいと思います。

例えば、

リクエストいただければ、

サーバーは FooObject オブジェクト リゾルバーで解決される場合があります

それから、

オブジェクト フィールドは、FooObject オブジェクトのフィールド リゾルバで解決される場合があります

次に、graphqlの結果を取得できます

私がやろうとしているのは、オブジェクト リゾルバーでの解決中に、以下のようなフィールド ヒントを与えることです。

この場合、リゾルバーでクライアントが要求したフィールドを抽出する方法が見つかりませんでした。Ctx(context)オブジェクトは、私の調査では、オブジェクトが要求についてよく示していないことを示しています。私が言及したような方法はありCtx.[__COLLECT_REQUESTED_FIELDS__]()ますか?

各フィールドリゾルバーがデータベースの1つの列を選択してクエリを作成することで試すことができます。しかし、フィールドが要求されていることをすでに知っていれば、1つのクエリで作成でき、多くのN+1ケースの問題を解決できます(トップレベルのオブジェクトはネストされたすべてのオブジェクトをクエリに持ち込むことができるため、データベースに依存する場合があります)

まだベストプラクティスがないことはわかっていましたGraphQL。私が試しているよりも良い方法が存在する可能性があります。どのようなフィールドが要求されているかを知るために購入すると、処理データを作成するのに適しています。

どなたかご存知でしたら教えてください。

ありがとうございました。

0 投票する
1 に答える
1404 参照

scala - sangria-graphqlでミューテーションを実行するには?

現在、ここから sangria-graphql を学んでいます。ただし、Mutation (追加、更新、削除) に関するドキュメントは見つかりませんでした。また、グーグルはあまり役に立ちません。それで、皆さんは私に何か良いリソースを提供できますか?

0 投票する
1 に答える
2013 参照

json - Sangria を使用した GraphQL スキーマ

ScalaでGraphQLサーバーをコーディングするためのSangriaライブラリを見ています。ただし、同じ型システムを 2 回実装する必要があるのは奇妙に感じます。(1) GraphQL 型宣言の一部として、および (2) サーバー側でも、Scala ケース クラスとして、付随する ObjectType、InterfaceType などを使用します。値。

私の目的は、各形状がタイプの GraphQL コレクションとして定義されている任意の形状の集約を CRUD できるようにすることであるため、Scala で型システムをハードコーディングすることは特に面倒です。たとえば、Shape 型のインスタンスに GraphQL ドキュメントがフィールドとして含まれているとします。タイプ Entity のインスタンスには、その Shape への参照があり、その Shape で定義された形状の Json オブジェクトも含まれています。

たとえば、シェイプ ドキュメントが次のような場合:

エンティティの Json コンテンツは次のようになります。

(もちろん、実際の例には、ネストされた型などもあります。)

したがって、対応する Shape で形状が定義されているタイプ Entity のインスタンスを定義できるようにしたいと考えています。対応する sangria.schema.Schema をハードコードしたくはありませんが、シェイプ ドキュメントから直接派生させたいと考えています。

型宣言を含む GraphQL ドキュメントからプログラムで GraphQL スキーマを生成する方法はありますか?

0 投票する
2 に答える
938 参照

scala - Sangria-graphql: 派生入力オブジェクト タイプをミューテーション引数として渡すとエラーが発生する

オプションフィールドを持つ次のケースクラスがあります。

ビジネス ユーザー オブジェクトの inputType オブジェクトを作成しようとしています。

この BusinessInputObject を引数として addBusinessUser ミューテーションに渡したい

しかし、次のコンパイル エラーが発生します。

ただし、BusinessRow のすべてのフィールドはスカラー値です。何が問題の原因なのかわかりません。表示されていないものはありますか?

0 投票する
2 に答える
1465 参照

scala - Sangria でネストされたカスタム オブジェクトをマーシャリングする

次の入力オブジェクトがあります。

カスタムマーシャリングが定義された私のモデルは次のとおりです。

私の質問は、InputObjectカスタムマーシャリングを持つネストされたものがある場合、マーシャリングBusinessHoursInputされる前に呼び出されるマーシャリングが表示されないということBusinessInputです。これは、「ad」の print ステートメントの前に「Hey」の print ステートメントが実行されることがないためBusinessInputです。BusinessInputオブジェクトにキャストできないため、DBに時間フィールドを挿入しようとすると、後で問題が発生しBusinessHoursInputます。Sangria では、親オブジェクトがマーシャリングされる前にネストされたオブジェクトをマーシャリングすることはできませんか?