Seibii::Http
Installation
gem 'seibii-http'
Usage
Base client
def get
Seibii::Http::Clients::Base
.new(logger: ->() { |log| Rails.logger.debug(log) }) # logger is optional
.request(
method: :get, # required
uri: URI.parse('https://example.com/example'), # required
read_timeout: 5, # optional, default set 60
write_timeout: 60, # optional, default set 60
request_body: nil, # optional
headers: { Accept: '*/*' }, # optional
need_verify_cert: false # optional
) #=> response body String
rescue Seibii::Http::ClientError => e # 404 will not raise exception but just return nil response
p e
p e.response.status #=> 400..499
p e.response.body
rescue Seibii::Http::ServerError => e
p e
p e.response.status #=> 500..599
p e.response.body
end
Json client
-
{ Content-Type: 'application/json
, Accept: 'application/json'}` headers will be added. - You can use hash to make request parameters and receive response
def post
Seibii::Http::Clients::Json
.new(logger: ->() { |log| Rails.logger.debug(log) }) # logger is optional
.request(
method: :post, # required
uri: URI.parse('https://example.com/example'), # required
read_timeout: 60, # optional, default set 60
write_timeout: 5, # optional, default set 60
params: { a: 'b', c: 'd' }, # optional
headers: { Authorization: 'Bearer token' }, # optional
need_verify_cert: false # optional
) #=> response json hash
rescue Seibii::Http::ClientError => e # 404 will not raise exception but just return nil response
p e
p e.response.status #=> 400..499
p e.response.body
rescue Seibii::Http::ServerError => e
p e
p e.response.status #=> 500..599
p e.response.body
end
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/seibii/seibii-http. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the Seibii::Http project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.