Как загрузить изображение с помощью клиента apollo iOS? - PullRequest
0 голосов
/ 13 февраля 2020

У меня проблема с загрузкой изображения в ios клиенте apollo. после загрузки изображения я получаю GraphQlError "createReadStream is not function" . Я не мог понять, что пошло не так? Мутация

mutation UploadPhoto($input: UploadPhotoInput){
  uploadClientPhoto(input: $input){
    photo
  }
}

Тип Подробности

type UploadPhotoInput {
photo: Upload
}
type UploadPhotoResponse {
photo: String
}

Следующий код не работает

class Network {
  static let shared = Network()

  private lazy var networkTransport = HTTPNetworkTransport(url: URL(string: "http://192.168.10.29:5001/graphql")!, session: .init(configuration: URLSessionConfiguration.default))

  private(set) lazy var apolloCient = ApolloClient(networkTransport: networkTransport)
}

Загрузить изображение

if let data = singlePhoto.image.jpegData(compressionQuality: 0.8) {
          let name = UUID().uuidString
          let file = GraphQLFile(fieldName: "\(name)", originalName: "\(name).png",mimeType: "image/png" ,data: data)

          let uploadInput = UploadPhotoInput(photo: file.originalName)
          let uploadMutation = UploadPhotoMutation(input: uploadInput)

          Network.shared.apolloCient.upload(operation: uploadMutation, context: nil, files: [file]) { (result) in
            switch result {
            case .success(let success):
              print(success.data)
            case .failure(let error):
              print(error.localizedDescription)
            }
          }

        }

1 Ответ

0 голосов
/ 13 февраля 2020

Это, конечно, звучит расстраивающе. Я слышал о подобных проблемах с другими сетевыми клиентами, хотя.

Похоже, что apolloCient.upload не будет отправлять MultiQL-запрос GraphQL .

Похоже в этом блоге рассказывается, как именно это настроить - даже включая пример репо, сделанный для React Native.

Надеюсь, это полезно!

...