入力なしでPATCHまたはPOSTリクエストを行うことはできないようですか?
エラー: Error: [GraphQL mutation using a REST call without a body]. No
入力was detected. Pass bodyKey, or bodyBuilder to the @rest() directive to resolve this.
突然変異:
mutation extendTrial($orgSlug: String!) {
extendTrialResult(orgSlug: $orgSlug) @rest(
type: "Org",
path: "/orgs/{args.orgSlug}/extend_trial/",
method: "PATCH",
bodySerializer: "text"
)
}
アポロオプション:
bodySerializers: {
text: (data, headers) => {
headers.set('Content-Type', 'text/plain');
return { body: data, headers };
}
}
私はあなたがこれを行うことができると
mutation extendTrial($orgSlug: String!) {
extendTrialResult(orgSlug: $orgSlug, input: null) @rest(
type: "Org",
path: "/orgs/{args.orgSlug}/extend_trial/",
method: "PATCH",
bodySerializer: "text"
)
}
実際、私にとってinput: null
は機能しません
mutation extendTrial($orgSlug: String!) {
extendTrialResult(orgSlug: $orgSlug, input: {}) @rest(
type: "Org",
path: "/orgs/{args.orgSlug}/extend_trial/",
method: "PATCH",
bodySerializer: "text"
)
}
これは客観的に恐ろしいことではありませんか? 今これを回避する方法はありますか? ドキュメントには次のように書かれています。
POSTまたはPUTHTTPリクエストを行う場合、多くの場合、リクエスト本文を提供する必要があります。 慣例により、GraphQLでは入力タイプに入力として名前を付けることをお勧めします。そのため、デフォルトでは、ここでボディのJSONオブジェクトを検索します。
これは、あなたがいつも体を必要としないという事実を私たちが知っているように聞こえませんか?
そのドキュメントラインのライターとして言えば、ええ、私は知っています。 これは、私のユースケースではそれほど優先度が高くありませんでした。
@ d9001 @Laruxoの回避策を見ると、この制約を回避するために数文字を追加するだけでよいことがわかります。 この機能のコードを提供したい場合は、レビューのお手伝いをさせていただきます。
ええ、それは私がそれを動かすことができなかったということではありません。 それは問題が何であるかを理解するのに私を狂わせました、そして解決策は私のプルリクエストで呼び出されたようにちょっとめちゃくちゃです、そこで誰もが未使用のオブジェクトを削除するように私に言いました:|
その要件を削除するために何が必要かを見ていきます。
最も参考になるコメント
実際、私にとって
input: null
は機能しません