Jak odczytać nagłówek HTTP w niższych warstwach?

Jak odczytać nagłówek HTTP w niższych warstwach?
DU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Endpoint w springu dostaje na łeb HTTP nagłówek Correlation-Id, następnie wołany jest serwis czy jakieś inne driven adaptery.

Gdzieś tam głębiej w tym serwisie chcę odczytać wartość tego correlationId, np. żeby przekazać correlationId do downstream systemu albo sobie to ładnie wyświetlić tęczowymi literkami. Ofc nie ma mowy o przekazywaniu correlationId miliard poziomów w dół w nagłówkach metod.

Jak ten problem rozwiązać, ale tak kulturalnie i z finezją? A najlepiej w taki sposób żeby dało się to wydzielić do sharowanej biblioteki.

Ja a nawet ChatGPT proponujemy Filter który będzie wyciągał to z HttpServletRequesta i wsadzał to w ThreadLocal?

E9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 216
2

MDC?

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
5
DisposableUserException napisał(a):

Endpoint w springu dostaje na łeb HTTP header "Correlation-Id", następnie wołany jest serwis czy jakieś inne driven adaptery.

Gdzieś tam głębiej w tym serwisie chcę odczytać wartość tego correlationId, np. żeby przekazać correlationId do downstream systemu albo sobie to ładnie wyświetlić tęczowymi literkami. Ofc nie ma mowy o przekazywaniu correlationId miliard poziomów w dół w nagłówkach metod.

Dużo tych poziomów się narobiło. Może wywalić 999 999 996 poziomów, a przekazywanie w pozostałych to już nie będzie problem?

Jak ten problem rozwiązać, ale tak kulturalnie i z finezją? A najlepiej w taki sposób żeby dało się to wydzielić do sharowanej biblioteki.

Ja a nawet ChatGPT proponujemy Filter który będzie wyciągał to z HttpServletRequesta i wsadzał to w ThreadLocal?

To bardzo dobry pomysł - tak rodzą się patologie. Potem, ktoś wywoła metodę np w jakimś batchu, nie wsadzi tego Correlation-Id w ThreadLocal i się zacznie walić. Albo ktoś zechce używać wątków i np. correlation-Id zaczną się mieszać między requestami -> polecam.

S4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1268
0

Kiedys ja zaczynałem to znalazem w kodzie coś w drugą stronę. Było kilka poziomów i jeden specjalista chciał zwrócić obiekt gdzie wcześniej była tylko flaga to go opakował w wyjątek. Takie sterowanie przez wyjatki :)

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
6

Wyciągnij nagłówek w kontrolerze i przekaż go jako parametr.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.