Próbuję uzyskać nagłówki żądań w ich oryginalnym formacie z Rack za pomocą Ruby, ale nie udało mi się tego jeszcze rozgryźć. Hash, który otrzymuję z request.env, nie jest tym, czego chcę. W tym hash, klawisze nagłówkowe są upcased i mieć podkreślenia zamiast kresek, tak:Jak mogę uzyskać nagłówki żądań w ich oryginalnym formacie z Rack?
"CONTENT_TYPE" => "application/json; charset = UTF-8"
Co chcę to nagłówki przed oni są przetwarzane, szukam:
"content_type" => "application/json; charset = UTF-8"
mogę dość łatwo pętli request.env szuka nagłówków, które zaczynają się HTTP_ i rozdzielaj je, zamień na wielkie litery każdego słowa i gsub, aby zastąpić podkreślenia myślnikami, aby wprowadzić je do żądanego formatu. Staje się to trudniejsze, aby zachować oryginalny format ten sposób gdy mamy do czynienia z nagłówkami takimi jak:
„X-BT-RequestId”
czuję, że powinienem być w stanie dostać się na wstępnie przetworzonych nagłówków jakoś.
Piszę odbiornik HTTP, który otoczy żądanie i przekazuje je do innej usługi i chcę zachować nagłówki w ich oryginalnym formacie. Wiem, że nagłówki mają być niewrażliwe na wielkość liter, ale jeśli mogę je przesłać w ich oryginalnym formacie, mam nadzieję, że zapobiegnę problemom z rozróżnianiem wielkości liter w późniejszym czasie, gdy użytkownicy moich baz danych będą sprawdzać wartości oparte na tych nagłówkach.
Wszelkie pomysły?
Czy możesz napisać oprogramowanie pośredniczące typu Rack, aby rozwiązać ten problem? Byłby to najprostszy sposób wykorzystania danych zlecenia przed jakimkolwiek wstępnym przetwarzaniem. – etagwerker