Class: ApiAdaptor::Headers

Inherits:
Object
  • Object
show all
Defined in:
lib/api_adaptor/headers.rb

Overview

Thread-safe header management for HTTP requests

Headers are stored in thread-local storage, allowing different threads to maintain separate header contexts without interference.

Examples:

Setting custom headers

ApiAdaptor::Headers.set_header("X-Request-ID", "12345")
ApiAdaptor::Headers.set_header("X-Correlation-ID", "abcde")

Getting all headers

headers = ApiAdaptor::Headers.headers
# => {"X-Request-ID" => "12345", "X-Correlation-ID" => "abcde"}

Clearing headers

ApiAdaptor::Headers.clear_headers

Class Method Summary collapse

Class Method Details

.clear_headersHash

Clears all headers for the current thread

Returns:

  • (Hash)

    Empty hash



41
42
43
# File 'lib/api_adaptor/headers.rb', line 41

def clear_headers
  Thread.current[:headers] = {}
end

.headersHash

Returns all non-empty headers for the current thread

Returns:

  • (Hash)

    Hash of header names to values, excluding nil/empty values



34
35
36
# File 'lib/api_adaptor/headers.rb', line 34

def headers
  header_data.reject { |_k, v| v.nil? || v.empty? }
end

.set_header(header_name, value) ⇒ String

Sets a header value for the current thread

Parameters:

  • header_name (String)

    Header name

  • value (String)

    Header value

Returns:

  • (String)

    The value that was set



27
28
29
# File 'lib/api_adaptor/headers.rb', line 27

def set_header(header_name, value)
  header_data[header_name] = value
end