Доступ к заголовкам ответов в SyncGraphQlClientInterceptorJAVA

Программисты JAVA общаются здесь
Anonymous
Доступ к заголовкам ответов в SyncGraphQlClientInterceptor

Сообщение Anonymous »

Первоначально этот вопрос был задан по поводу проблем с GitHub. Написал сюда в надежде получить ответ.
Скажите пожалуйста, можно ли как-то получить информацию о заголовках ответов в SyncGraphQlClientInterceptor?
Проблема мы пытаемся решить:
Существует определенный поставщик сервера Graphql, который возвращает apollo-trace-id в заголовках ответов. Со своей стороны, нам необходимо зарегистрировать этот идентификатор трассировки, чтобы улучшить наблюдаемость. Мы можем получить заголовок ответа на уровне ClientHttpRequestInterceptor, но нам нужно регистрировать этот идентификатор в двух случаях:
  • Если сервер провайдера вернул неправильный HTTP-статус.
  • Если сервер провайдера вернул в ответе неверные данные (например, в блоке ошибок ответа есть какие-то ошибки, не позволяющие считать этот ответ валидным) ).
И если первый пункт можно решить достаточно просто с помощью ClientHttpRequestInterceptor, то второй пункт с его помощью решить может быть сложнее . Проблема в том, что ClientHttpRequestInterceptor не имеет десериализованного тела ответа, и нет простого способа его анализа. А если взять SyncGraphQlClientInterceptor, то доступа к заголовкам ответов нет из-за отсутствия таких данных в GraphQlResponse и передачи этой информации в HttpSyncGraphQlTransport. По сути есть два варианта:
  • Создать определенный контекст для хранения apollo-trace-id на уровне ClientHttpRequestInterceptor (класс с ThreadLocal< /code>), а затем получить его на уровне SyncGraphQlClientInterceptor.
  • Дополнительно десериализовать тело ответа на уровне ClientHttpRequestInterceptor и записать в журнал информацию о TraceID. code> есть.
Но оба варианта, если честно, выглядят так себе. Может быть, есть какие-то лучшие варианты, которые мы не заметили?

Подробнее здесь: https://stackoverflow.com/questions/787 ... nterceptor

Вернуться в «JAVA»