私はScaphold.ioサービスでApolloを使用しています。そのサービスにBLOBを書き込むために、リクエスト本体にオプションを追加する必要があります。Apollo GraphQLリクエストにリクエストボディの値を追加するには?
フルScapholdの例では、ここで見つけることができます:https://scaphold.io/docs/#uploading-files
しかし、それはこのようなものが行われます。
form.append("variables", JSON.stringify({
"input": {
"name": "Mark Zuck Profile Picture",
"userId": "VXNlcjoxMA==",
"blobFieldName": "myBlobField"
}
}));
// The file's key matches the value of the field `blobFieldName` in the variables
form.append("myBlobField", fs.createReadStream('./mark-zuckerberg.jpg'));
fetch("https://us-west-2.api.scaphold.io/graphql/scaphold-graphql", {
method: 'POST',
body: form
}).then(function(res) {
return res.text();
}).then(function(body) {
console.log(body);
});
それがリクエストボディにblobFieldを追加します。これに基づき
は、私は変数にblobFieldNameプロパティを渡す必要があり、その後、リクエストボディにブロブとそのプロパティに渡された値を追加します。ただし、Apolloを使用すると、リクエストボディに追加することはできません。私は次のことを試しましたが、ネットワークの検査官をチェックインするとリクエストボディにはありません。
export const withCreateCoverPhoto = graphql(CreateCoverPhoto, {
props: ({mutate}) => ({
createCoverPhoto: (name, file) => mutate({
variables: {
input: {
blobFieldName: name,
},
},
[name]: file
}),
}),
});
ご連絡ください。