Как читать результаты с помощью Apollo Client для iOS

Я пытаюсь использовать GraphQL в iOS с клиентом Apollo. У меня есть следующая мутация:

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

и UserType выглядит так:

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

В iOS я настроил клиент aopllo, как говорит документ, и работает отлично, но я не знаю, как получить доступ к каждому полю в ответе. При успешном входе в систему я хочу прочитать json, который я получаю как ответ с полями UserType, поэтому я делаю это:

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

У меня вопрос, как я могу прочитать каждое поле из resultGQL, которое принадлежит данным UserType, определенным в моей схеме grapql?

С уважением

1 ответ

Вопрос не ясен на 100%, поскольку в нем отсутствует код вашей мутации: мутация GraphQL должна возвращать хотя бы одно значение, которое вы должны определить. Так как я не уверен в вашем методе

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

Я даю вам простой пример для обновления существующего userProfile с мутацией GraphQL, а затем возвращает каждое поле, определенное в вашей схеме для 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, которые должны быть возвращены из мутации, вы можете получить к ним доступ теперь в переменной обратного вызова.

Другие вопросы по тегам