【问题标题】:how can I pass multipart form-data and file upload using graphql-ruby at serverside?如何在服务器端使用 graphql-ruby 传递多部分表单数据和文件上传?
【发布时间】:2018-11-15 05:42:15
【问题描述】:

以下代码用于突变

field :companyUpdate, Types::CompanyType do
    argument :id, !types.ID
    argument :file, Types::FileType
    resolve -> (obj, args, ctx) {
      company = ::Network::Company.find(args[:id])
      company.update!(logo: args[:file])
      company
    }
  end

file_type.rb 是

    Types::FileType = GraphQL::ScalarType.define do
  name 'File'
  description 'action_dispatch_uploaded_file'
  coerce_input ->(action_dispatch_uploaded_file, ctx) {
    action_dispatch_uploaded_file
  }
end

它不工作。 apollo 客户端正在使用 apollo-upload-client 上传文件,但由于文件为空,它会出错。 有什么解决办法?

【问题讨论】:

    标签: ruby-on-rails ruby graphql apollo-client graphql-ruby


    【解决方案1】:

    在您的架构中定义 File 类型。正常提交表格! 在服务器端,在向GraphQL resolver发送数据之前,保存文件并存储更改变量!

    类似this

    更新:

    Apollo Server 2 支持文件上传!使用来自 Apollo 的 this article 以便在您的后端支持文件上传:

    【讨论】:

    • 我没有得到你能解释一下吗?在将数据发送到解析器之前如何存储文件? @mohsen-zarezardeyni
    猜你喜欢
    • 1970-01-01
    • 2020-05-17
    • 2014-08-18
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2022-01-23
    相关资源
    最近更新 更多