169 похожих чатов

Всем привет :) возможно кто-то подскажет по логике работы graphql-java либы в

общем, библиотека из коробки базово работает с ошибками согласно graphql-протоколу - если они случаются, либа пишет в errors и отдаёт 200 (например, мы написали невалидный query, или ещё что-то случилось).
однако есть случаи, когда либа кидает GraphQLException (обёртка над RuntimeException), и при этом эксепшн не ловится/не обрабатывается библиотекой - и если не прописать уже свой сервисный код, чтобы словить их и добавить в errors, по понятным причинам клиент будет получать 500, хотя кажется ожидаемое поведение было бы получить эти ошибки в errors, согласно протоколу.
https://www.graphql-java.com/documentation/v13/exceptions/ - я про эту категорию ошибок, по крайней мере часть из них .

Как пример - UnknownOperationException . Формируем ExecutionInput:
ExecutionInput executionInput = ExecutionInput.newExecutionInput()
.query(query)
.operationName(operationName);
.build();
И после этого кидаем, например, такой запрос:
{"query": "query {
someField
}",
"operationName": "someOperationName"

указав явно в поле "operationName" , но при этом не указав (или указав неправильный) operationName после query, как тут:

{"query": "query someOperationName {
someField
}",
"operationName": "someOperationName"


Ну и в первом случае кинется GraphQLException.

Вопрос - кто-нибудь сталкивался с таким поведением? Почему так, в чём задумка для конкретно таких ошибок кидать рантайм эксепшны и не обрабатывать их либой?

1 ответов

7 просмотров

ну 200 и 500 ошибки это ошибки на разных уровнях стека (200 ошибка на уровне приложения, 500 на уровне http сервера, по крайней мере в js/ts так), тут наверное не стоит их в одну объединять. Это как ошибка на уровне wifi, инетернета нет. и на уровне youtube (видео не грузятся). результат один (видос не посмотреть), но по сути ошибки разные. Лучше написать свой обработчик таких ошибок и реагировать на них. Как что происходит на java не знаю

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта