reactjs - 有什么方法可以在 reactjs 中使用现代反应中继向 graphql 发送多部分表单请求
问题描述
我是新来对graphql做出反应的人。
我想通过网络接口将所有类型的文件上传到服务器。
我需要做的就是使用中继编写一个graphql突变,它将多部分表单数据发送到服务器。
我试图在谷歌上搜索它,但我没有找到任何合适的解决方案。
解决方案
GraphQL 消息唯一真正的标准传输是JSON HTTP POST。“文件上传”在 GraphQL 中根本不是一个概念;您必须在 JSON 中编码文件内容(可能首先对其进行 base64 编码)并将其作为参数传递给突变,可能在"variables":
块中。
{
"query": "mutation Upload($name: String!, $contents: String!) { uploadFile(name: $name, contents: $contents) { id } }",
"variables": {
"name": "hello.txt",
"contents": "aGVsbG8gd29ybGQ="
}
}
您可能会考虑的另一条路径是生成一次性上传 URL。然后你会有一个 GraphQL 突变,它启动了上传并返回了 URL
mutation StartUpload($name: String) {
startUpload(name: $name) {
id
url
}
}
然后您的应用程序可以将文件 HTTP POST 到返回的 URL。实现这一点留作练习。
推荐阅读
- windows - Windows Batch:IF-ELSE 子句后运行命令出现问题
- rest - JAX-RS/Jersey 中的资源类和提供者类有什么区别?
- snmp - SNMP4j 代理中的 DuplicateRegistrationException
- android - 长时间延迟后抛出套接字超时异常
- c# - Visual Studio DialogWindow 的 InitializeComponent() 在 Nunit 测试中引发异常
- cordova - 在 ionic 3 中集成 Facebook 登录
- python - keras中的概率回归
- angular - 带有 --watch=false 的 Angular CLI 6 覆盖返回错误
- java - 方法编译并使用传递的错误类型的变量
- android - 无法使用 Dagger 2 注入 Fragment