Выбор ответа Middle gRPC, GraphQL и WebSocket спрашивают часто обновлено
Ошибки в GraphQL
Вопрос
GraphQL-запрос с ошибкой в одном из полей вернул HTTP 200. Что это значит?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Так принято: ошибки приходят в errors рядом с data с частичными данными. В GraphQL ответ может быть частично успешным: часть полей в data, по остальным записи в errors с путём (path).
Варианты ответа
- Ошибки нет: раз пришёл код 200, поле обработано, а сообщение служебное
- Так принято: ошибки приходят в
errorsрядом сdataс частичными даннымиправильный ответ - Сервер нарушил спецификацию HTTP: при ошибке в поле должен вернуться код 400 или 500
- Значит, запрос выполнился дважды, и второй раз завершился ошибкой
Разбор
В GraphQL ответ может быть частично успешным: часть полей в data, по остальным записи в errors с путём (path). Поэтому тест GraphQL всегда проверяет наличие errors, а не только код. 4xx и 5xx тоже бывают, например при невалидном запросе по спецификации GraphQL over HTTP с типом application/graphql-response+json, но 200 с ошибками встречается постоянно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.