繁体   English   中英

如何使用iOS版Apollo Client读取结果

[英]How to read results using Apollo Client for iOS

我正在尝试在带有Apollo Client的iOS中使用GraphQL。 我有以下突变:

login(user: String!, password: String!): UserType

而UserType看起来像这样:

id: ID
user: String!
password: String!
name: String
lastname: String
email: Email!
groups: [GroupType]

在iOS中,我按照文档所述配置了aopllo客户端,并且运行良好,但是我不知道如何访问响应中的每个字段。 登录成功后,我想读取以UserType字段作为响应收到的json,因此,我正在这样做:

apolloClient.perform(mutation: loginMutation) {
                resultsGQL, error in
...
}

我的问题是,如何从resultGQL中读取属于grapql模式中定义的UserType数据的每个字段?

问候

这个问题不是100%清楚的,因为它缺少突变的一些代码:GraphQL突变必须返回至少一个您必须定义的值。 由于我不确定您的方法

login(user: String!, password: String!): UserType

我给你一个简单的例子,用GraphQL突变更新现有的userProfile,然后返回在您的模式中为userType定义的每个字段。 让我们假设您有一个userType(因此知道相应的userId),并且想要修改电子邮件:

mutation updateUserProfile($id: ID!, $newEmail: String) {
updateUser(id: $id, email: $newEmail) {
    id
    user
    password
    name
    lastName
    email 
   }
}

如您所见,执行后

updateUser(id: $id, email: $newEmail)

所有返回值都在以下{...}括号内定义,因此可以在您的回调变量中访问

resultsGQL

这意味着:

apolloClient.perform(mutation: loginMutation) { resultsGQL, error in
    if let results = resultsGQL?.data {
      // "results" can now access all data from userType
  }
}

由于您定义了要从突变返回的userType模式的所有实体,因此您现在可以在回调变量中访问它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM