Module: ApiBrasil::Core::Transport
- Defined in:
- lib/api_brasil/core/transport.rb,
lib/api_brasil/core/transport/faraday_transport.rb,
lib/api_brasil/core/transport/net_http_transport.rb
Overview
Camada de transporte HTTP da SDK. A implementacao padrao usa a stdlib
(NetHttpTransport), com uso automatico do Faraday quando ele ja esta
carregado no processo (FaradayTransport); injete a sua para usar
proxies, outro cliente HTTP, mocks de teste etc.
Contrato: retorna a resposta para QUALQUER status HTTP; lanca
NetworkError/TimeoutError apenas quando nao houve resposta.
Defined Under Namespace
Classes: Base, FaradayTransport, NetHttpTransport, Request, Response
Constant Summary collapse
- RAW_RESPONSE_TYPES =
Tipos de resposta que nao devem ser decodificados como JSON.
%w[raw arraybuffer stream].freeze
Class Method Summary collapse
-
.decode_body(request, raw) ⇒ Object?
Decodifica o corpo conforme o
response_typepedido. -
.default ⇒ Base
Transporte padrao: Faraday quando ja carregado, senao
net/http.
Class Method Details
.decode_body(request, raw) ⇒ Object?
Decodifica o corpo conforme o response_type pedido.
95 96 97 98 99 100 101 102 103 104 |
# File 'lib/api_brasil/core/transport.rb', line 95 def decode_body(request, raw) return raw if RAW_RESPONSE_TYPES.include?(request.response_type) return nil if raw.nil? || raw.empty? begin JSON.parse(raw) rescue JSON::ParserError raw end end |
.default ⇒ Base
Transporte padrao: Faraday quando ja carregado, senao net/http.
84 85 86 87 88 |
# File 'lib/api_brasil/core/transport.rb', line 84 def default return FaradayTransport.new if defined?(::Faraday) NetHttpTransport.new end |