Что должен вернуть пустой запрос GraphQL?

Я экспериментирую с созданием сервера GraphQL и пытаюсь использовать расширение GraphiQL Chrome, чтобы поиграть с ним.

Как только я установил конечную точку на свой сервер, http://localhost:3000/graphql, GraphiQL отправит пустой запрос:

Request URL:http://localhost:3000/graphql
Request Method:POST
Status Code:200 OK
Remote Address:[::1]:3000
Referrer Policy:no-referrer-when-downgrade

Я заставил его вернуть пустой ответ, но затем я получаю эту ошибку JavaScript в Chrome:

react.min.js:14 Uncaught TypeError: Cannot read property 'length' of undefined
    at GraphiQL.autoCompleteLeafs (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/graphiql/graphiql.js:1060:33)
    at GraphiQL._runEditorQuery (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/graphiql/graphiql.js:1131:13)
    at Object.r (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:14:10134)
    at i (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:21911)
    at Object.u [as executeDispatchesInOrder] (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:22122)
    at p (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:18475)
    at f (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:18601)
    at Array.forEach (native)
    at r (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:15:26156)
    at Object.processEventQueue (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:19721)


После этого GraphiQL вообще не работает. Я могу ввести любой запрос, нажать кнопку воспроизведения, и все, что он сделает, это повторяет ошибку:

введите здесь описание изображения Что мне не хватает? Ожидает ли GraphiQL какой-то схемы от пустого запроса?


person pupeno    schedule 31.05.2017    source источник


Ответы (1)


Я считаю, что для расширения Chrome GraphiQL требуется объектный ответ от API. Попробуйте вернуть пустой объект по пустым запросам, чтобы узнать, решает ли это проблему за вас.

Глядя на https://launchpad.graphql.com (который также использует GraphiQL) при отправке пустого запроса, я получаю следующий объект назад:

{
  "code": 400,
  "error": "Script returned an error.",
  "details": "No query was provided in request body."
}

Это описательный ответ, который вы можете использовать для отладки.

person Lars Emil Christensen    schedule 31.05.2017