Class: GraphWeaver::Transport::HTTP
- Inherits:
-
Transport
- Object
- Transport
- GraphWeaver::Transport::HTTP
- 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
-
#initialize(url, headers: {}, open_timeout: 10, read_timeout: 30, keep_alive_timeout: 2) ⇒ HTTP
constructor
A new instance of HTTP.
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 |