Предоставление строки запроса для выборки из GraphQL API

Я пытаюсь получить некоторые данные из конечной точки GraphQL, но все равно получаю сообщение об ошибке «Необходимо предоставить строку запроса». Я уверен, что предоставляю строку запроса, откуда взялась эта ошибка?

Конечная точка: https://antserver-blocjgjbpw.now.sh/graphql.

const query = `{
    ants {
    name
    color
    length
    weight
    }
}`

document.getElementById("basicFetchButton").addEventListener("click", () => {
	fetch("https://antserver-blocjgjbpw.now.sh/graphql", {
  	method: 'POST',
		'Content-Type': 'application/graphql',
    body: JSON.stringify({query})
  })
  .then(res => res.json())
  .then(data => console.log(data))
})


person OctaviaLo    schedule 10.12.2017    source источник


Ответы (1)


В этом случае вы хотите использовать Content-Type: 'application/json'. application/graphql требует, чтобы все тело запроса было запросом, но я не рекомендую этот подход, поскольку невозможно отправить переменные запроса.

Вот полный пример кода:

fetch('https://antserver-blocjgjbpw.now.sh/graphql', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ query }),
})
  .then(res => res.json())
  .then(res => console.log(res.data));

Дополнительные примеры см. В моей статье 4 простых способа вызвать GraphQL API

person stubailo    schedule 10.12.2017