Выбор ответа Middle gRPC, GraphQL и WebSocket спрашивают часто обновлено

Ошибки в GraphQL

Вопрос

GraphQL-запрос с ошибкой в одном из полей вернул HTTP 200. Что это значит?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Так принято: ошибки приходят в errors рядом с data с частичными данными. В GraphQL ответ может быть частично успешным: часть полей в data, по остальным записи в errors с путём (path).

Варианты ответа

  1. Ошибки нет: раз пришёл код 200, поле обработано, а сообщение служебное
  2. Так принято: ошибки приходят в errors рядом с data с частичными даннымиправильный ответ
  3. Сервер нарушил спецификацию HTTP: при ошибке в поле должен вернуться код 400 или 500
  4. Значит, запрос выполнился дважды, и второй раз завершился ошибкой

Разбор

В GraphQL ответ может быть частично успешным: часть полей в data, по остальным записи в errors с путём (path). Поэтому тест GraphQL всегда проверяет наличие errors, а не только код. 4xx и 5xx тоже бывают, например при невалидном запросе по спецификации GraphQL over HTTP с типом application/graphql-response+json, но 200 с ошибками встречается постоянно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.