Запрос Apollo-fetch GraphQL

Я новичок в GraphQL. Я изо всех сил пытаюсь получить данные из моего API на интерфейсе.

Я использую apollo-fetch для создания запроса и выполнения запроса, который

const fetch = createApolloFetch({
  uri: `${BASE_API_URL}/graphql`,
});
fetch({
  query: `{
    transactions(limit: 3) {
      tid
      terminalNo
      issuerId
    }
  }`,
}).then(res => {
  console.info('res', res);
}).catch(err => console.info(err));

Я получаю эту ошибку:"Syntax Error: Expected Name, found String "query"".

Странно то, что с помощью Postman с почти таким же запросом я получаю правильные данные.

это запрос, который я использую для почтальона

query {
  transactions(limit: 3) {
   tid
   terminalNo
   issuerId
 }
}

Что я здесь делаю неправильно? Я попробовал несколько вариантов запроса, но результат был тот же.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
0
348
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В вашей строке запроса нет ключевого слова query, а также есть дополнительная скобка. Это должно быть следующим

fetch({
  query: `
   query transactions {
     transactions(limit: 3) {
      tid
      terminalNo
      issuerId
     }
    }
`,
})

такой же результат. Это была моя первая попытка. тоже не запятая.

vbotio 05.03.2019 02:35

Я исправил ответ. Мой плохой не заметил вашу строку запроса

johnny peter 05.03.2019 02:37

все та же проблема

vbotio 05.03.2019 03:16
Ответ принят как подходящий

Решение, которое я нашел, заключалось в использовании простого javascript, но я еще не уверен, почему у apollo-fetch возникла ошибка

fetch(`${BASE_API_URL}/graphql`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: `query {
    transactions(limit: 3, offset: 0) {
      tid
      terminalNo
      issuerId
    } 
  }`,
})
.then(res => res.json())
.then(res => (
  this.setState({ transactions: res.data.transactions })
))
.catch(error => console.info('error', error));

Надеюсь, это поможет любому с той же проблемой.

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