Class: FocusNfe::HTTP::Adapter

Inherits:
Object
  • Object
show all
Defined in:
lib/focus_nfe/http/adapter.rb

Overview

Interface de um cliente HTTP plugável. A Connection despacha cada requisição já montada (URL absoluta, cabeçalhos e corpo serializado) para um adaptador, que executa o transporte e devolve uma Response.

Implementações concretas sobrescrevem #call. Timeouts não trafegam por #call — são injetados no construtor do adaptador concreto.

Direct Known Subclasses

FocusNfe::HTTP::Adapters::NetHttp

Instance Method Summary collapse

Instance Method Details

#call(method, url, headers: {}, body: nil) ⇒ FocusNfe::HTTP::Response

Parameters:

  • method (Symbol)

    verbo HTTP (:get, :post, :put, :delete)

  • url (String)

    URL absoluta da requisição

  • headers (Hash{String=>String}) (defaults to: {})

    cabeçalhos da requisição

  • body (String, nil) (defaults to: nil)

    corpo já serializado, ou nil

Returns:

Raises:

  • (NotImplementedError)

    sempre, na interface abstrata



20
21
22
# File 'lib/focus_nfe/http/adapter.rb', line 20

def call(method, url, headers: {}, body: nil)
  raise NotImplementedError, "#{self.class} deve implementar #call"
end