Skip to content

Add pluggable HTTP transport adapter - #963

Closed
sgilrodriguez wants to merge 1 commit into
v3-v2021-02-25from
bill-1929-pluggable-http-adapter
Closed

Add pluggable HTTP transport adapter#963
sgilrodriguez wants to merge 1 commit into
v3-v2021-02-25from
bill-1929-pluggable-http-adapter

Conversation

@sgilrodriguez

@sgilrodriguez sgilrodriguez commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Superseded — see branch pluggable-http-adapter.

Introduce an injectable HTTP transport so consumers can supply a custom
adapter via Client.new(http_adapter:) instead of being hard-wired to
Net::HTTP. Mirrors recurly-client-java#334. Purely additive — the default
path is byte-identical and there are no consumer-facing breaking changes.

- Add Recurly::HTTP::Adapter base documenting the contract:
  #call(method, url, headers, body) -> AdapterResponse.
- Add Recurly::HTTP::DefaultHttpAdapter wrapping Net::HTTP + the shared
  class-level ConnectionPool.
- Client keeps URL/query building, auth headers, Idempotency-Key, retry,
  and status->typed-error mapping; the adapter owns only transport and
  translates transport exceptions into a neutral Errors::TransportError
  carrying a kind symbol.

BILL-1929

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sgilrodriguez
sgilrodriguez deleted the bill-1929-pluggable-http-adapter branch July 31, 2026 16:55
@sgilrodriguez
sgilrodriguez restored the bill-1929-pluggable-http-adapter branch July 31, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant