問題タブ [graphene-python]

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 投票する
0 に答える
130 参照

javascript - ユーザーGraphql Apollo Clientを保存

ユーザー ID を新しいビジネスに保存しようとしています。400 エラーが発生し続け、その理由がわかりません。私は、バックエンドにgraphqlのバックエンドにdjangoを使用し、フロントにvue jsのアポロクライアントを使用しています。私の要求では、ユーザー ID が送信されますが、何らかの理由で 400 の不正な要求エラーがスローされます。

クリエイトビズミューテーションアポロ

Biz ミューテーション Django を作成する

ビジネス コンポーネントの作成

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

python - グラフェンと SQLAlchemy を使用して GraphQL API 経由でレコードを更新する

PythonパッケージFlask、SQLAlchemy、Graphene、Graphene-SQLAlchemyを使用してGraphQL APIを構築しています。私はSQLAlchemy + Flask Tutorialに従いました。クエリとミューテーションを実行してレコードを作成できます。ここで、既存のレコードを更新する最良の方法を知りたいと思います。

これが私の現在のスクリプトschema.pyです:

備考:

  • 私のオブジェクトBatchOwnerには 2 つの属性 (ID、名前) しかありません
  • 名前を更新できるようにするにBatchOwnerは、更新メソッドの入力引数としてデータベース ID (リレー グローバル ID ではない) を指定する必要があると想定します。
  • しかしBatchOwner、クライアントから をクエリすると、Graphene は base64 でエンコードされたグローバル ID のみを返します (例:QmF0Y2hPd25lcjoxに対応するBatchOwner:1) 。

応答の例:

現時点で考えている解決策は次のとおりです。

  • グローバル ID を引数として受け取る更新ミューテーションを作成します。
  • グローバル ID をデコードします (どのように?)
  • デコードされたグローバル ID から取得したデータベース ID を使用して、データベースを照会し、対応するレコードを更新します。

これを行うより良い方法はありますか?

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

python - Graphene を使用してミューテーションを実行するときにレコードのグローバル ID を取得する

PythonパッケージFlask、SQLAlchemy、Graphene、Graphene-SQLAlchemyを使用してGraphQL APIを構築しています。私はSQLAlchemy + Flask Tutorialに従いました。ミューテーションを実行してレコードを作成できます。API からの応答でこのレコードのグローバル ID を取得したいと考えています。

ミューテーション用に実装されたクラスは次のとおりです。

次の突然変異は正常に機能します

しかし、ペイロードに「id」フィールドを追加すると、次のエラー メッセージが表示されます。

Flask アプリケーションによって生成されたログは次のとおりです。

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

python - グラフェン - GraphQL:「リクエスト」オブジェクトに属性「コンテキスト」がありません

私は単純な GraphQL Flask API に取り組んでおり、単純なユーザー検索リゾルバーを実装しています。これは私のschema.py

私はgraphene2.0 を使用していますが、コードは次のエラーを返します。"message": "resolve_find_user() got an unexpected keyword argument 'name'",グーグルの後、リゾルバーの動作方法が大幅に変更されたようです。graphene

私は経験し、UPGRADE-v2.0.mdそれに応じて物事を変更しました。リゾルバーは現在このようになっています。

現在、キーワード引数は消えていますが、新しい問題が発生しています。エラーは"message": "'Request' object has no attribute 'context'",です。info.contextうまくいくはずだと思っていたので、今は混乱していますが、どうやらそうではないようです。このコンテキストの問題を修正する方法について何か考えはありますか? GraphQL に取り組むのはこれが初めてで、どんな助けも本当に感謝しています!

type(info)編集: is<class 'graphql.execution.base.ResolveInfo'>type(info.context)isのように見え<class 'werkzeug.local.LocalProxy'>ます。contextSQLAlchemy コンテキストにする必要がありますか?

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

django - RESTfull API をデータ ソースとして使用したグラフェン リレーション

私はgraphqlサーバーを構築するためにdjangoグラフェンを使用しています.RESTfull APIを使用してデータを取得します.次のスキーマに従ってください:

私がする必要があるクエリは次のようなものです:

AllDataTypeしたがって、私の問題は、 で説明されているように、この 2 つのresolve_installationタイプdevice idとの関係をどのように作成するかresolve_allです。

インストールを解決するには、リゾルバーからdevice id返されたが必要です。resolve_all

どうすればこれを達成できますか?

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

django - graphene-django は動的に API ドキュメントを作成しますか?

Django バックエンド サービスで GraphQL を使用することを検討していますが、API ドキュメントに関する情報があまり見つかりませんでした。おそらくnpmのgraphql-docsのように、 GitHubのAPI docsに似た結果をもたらすドキュメントを動的に生成するためのソリューションが必要です。

graphene-djangoで達成することは可能ですか? そうでない場合、Python 環境の代わりになるものは何ですか?