Apollo-fetch GraphQL Request - PullRequest
       39

Apollo-fetch GraphQL Request

0 голосов
/ 05 марта 2019

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

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

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

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Решение, которое я нашел, заключалось в использовании простого 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.log('error', error));

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

0 голосов
/ 05 марта 2019

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

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