Class: GraphWeaver::Transport::HTTP

Inherits:
Transport
  • Object
show all
Defined in:
lib/graph_weaver/transport/http.rb

Overview

Minimal net/http transport — zero dependencies, loaded by default:

 GraphWeaver::Transport::HTTP.new(url, headers: { ... }, read_timeout: 10)

Timeouts surface as TransportError (retriable). The connection is persistent (keep-alive), serialized behind a mutex — one socket per transport, dropped on any failure so the next call starts fresh. For real connection pooling and a middleware ecosystem, use Transport::Faraday.

Instance Method Summary collapse

Constructor Details

#initialize(url, headers: {}, open_timeout: 10, read_timeout: 30, keep_alive_timeout: 2) ⇒ HTTP

Returns a new instance of HTTP.



27
28
29
30
31
32
33
34
35
36
# File 'lib/graph_weaver/transport/http.rb', line 27

def initialize(url, headers: {}, open_timeout: 10, read_timeout: 30, keep_alive_timeout: 2)
  @url = url
  @uri = URI(url)
  @headers = headers
  @open_timeout = open_timeout
  @read_timeout = read_timeout
  @keep_alive_timeout = keep_alive_timeout
  @mutex = Mutex.new
  @http = T.let(nil, T.nilable(Net::HTTP))
end