Class: SportsOddsAPI::Client
- Inherits:
-
Internal::Transport::BaseClient
- Object
- Internal::Transport::BaseClient
- SportsOddsAPI::Client
- Defined in:
- lib/sports_odds_api/client.rb,
sig/sports_odds_api/client.rbs
Constant Summary collapse
- DEFAULT_MAX_RETRIES =
Default max number of retries to attempt after a failed retryable request.
2- DEFAULT_TIMEOUT_IN_SECONDS =
Default per-request timeout.
60.0- DEFAULT_INITIAL_RETRY_DELAY =
Default initial retry delay in seconds. Overall delay is calculated using exponential backoff + jitter.
0.5- DEFAULT_MAX_RETRY_DELAY =
Default max retry delay in seconds.
8.0
Constants inherited from Internal::Transport::BaseClient
Internal::Transport::BaseClient::MAX_REDIRECTS, Internal::Transport::BaseClient::PLATFORM_HEADERS, Internal::Transport::BaseClient::SportsOddsAPI
Instance Attribute Summary collapse
- #account ⇒ SportsOddsAPI::Resources::Account readonly
-
#api_key_header ⇒ String?
readonly
API key via header.
-
#api_key_param ⇒ String?
readonly
API key via query param.
- #events ⇒ SportsOddsAPI::Resources::Events readonly
- #leagues ⇒ SportsOddsAPI::Resources::Leagues readonly
- #players ⇒ SportsOddsAPI::Resources::Players readonly
- #sports ⇒ SportsOddsAPI::Resources::Sports readonly
- #stats ⇒ SportsOddsAPI::Resources::Stats readonly
- #stream ⇒ SportsOddsAPI::Resources::Stream readonly
- #teams ⇒ SportsOddsAPI::Resources::Teams readonly
Attributes inherited from Internal::Transport::BaseClient
#base_url, #headers, #idempotency_header, #initial_retry_delay, #max_retries, #max_retry_delay, #requester, #timeout
Instance Method Summary collapse
-
#initialize(api_key_header: ENV["SPORTS_ODDS_API_KEY_HEADER"], api_key_param: ENV["SPORTS_ODDS_API_KEY_HEADER"], base_url: ENV["SPORTS_GAME_ODDS_BASE_URL"], max_retries: self.class::DEFAULT_MAX_RETRIES, timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY) ⇒ Client
constructor
Creates and returns a new client for interacting with the API.
Methods inherited from Internal::Transport::BaseClient
follow_redirect, #inspect, reap_connection!, #request, #send_request, should_retry?, validate!
Methods included from Internal::Util::SorbetRuntimeSupport
#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type
Constructor Details
#initialize(api_key_header: ENV["SPORTS_ODDS_API_KEY_HEADER"], api_key_param: ENV["SPORTS_ODDS_API_KEY_HEADER"], base_url: ENV["SPORTS_GAME_ODDS_BASE_URL"], max_retries: self.class::DEFAULT_MAX_RETRIES, timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY) ⇒ Client
Creates and returns a new client for interacting with the API.
"https://api.example.com/v2/". Defaults to ENV["SPORTS_GAME_ODDS_BASE_URL"]
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/sports_odds_api/client.rb', line 80 def initialize( api_key_header: ENV["SPORTS_ODDS_API_KEY_HEADER"], api_key_param: ENV["SPORTS_ODDS_API_KEY_HEADER"], base_url: ENV["SPORTS_GAME_ODDS_BASE_URL"], max_retries: self.class::DEFAULT_MAX_RETRIES, timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY ) base_url ||= "https://api.sportsgameodds.com/v2" @api_key_header = api_key_header&.to_s @api_key_param = api_key_param&.to_s super( base_url: base_url, timeout: timeout, max_retries: max_retries, initial_retry_delay: initial_retry_delay, max_retry_delay: max_retry_delay ) @events = SportsOddsAPI::Resources::Events.new(client: self) @teams = SportsOddsAPI::Resources::Teams.new(client: self) @players = SportsOddsAPI::Resources::Players.new(client: self) @leagues = SportsOddsAPI::Resources::Leagues.new(client: self) @sports = SportsOddsAPI::Resources::Sports.new(client: self) @stats = SportsOddsAPI::Resources::Stats.new(client: self) @account = SportsOddsAPI::Resources::Account.new(client: self) @stream = SportsOddsAPI::Resources::Stream.new(client: self) end |
Instance Attribute Details
#account ⇒ SportsOddsAPI::Resources::Account (readonly)
45 46 47 |
# File 'lib/sports_odds_api/client.rb', line 45 def account @account end |
#api_key_header ⇒ String? (readonly)
API key via header
20 21 22 |
# File 'lib/sports_odds_api/client.rb', line 20 def api_key_header @api_key_header end |
#api_key_param ⇒ String? (readonly)
API key via query param
24 25 26 |
# File 'lib/sports_odds_api/client.rb', line 24 def api_key_param @api_key_param end |
#events ⇒ SportsOddsAPI::Resources::Events (readonly)
27 28 29 |
# File 'lib/sports_odds_api/client.rb', line 27 def events @events end |
#leagues ⇒ SportsOddsAPI::Resources::Leagues (readonly)
36 37 38 |
# File 'lib/sports_odds_api/client.rb', line 36 def leagues @leagues end |
#players ⇒ SportsOddsAPI::Resources::Players (readonly)
33 34 35 |
# File 'lib/sports_odds_api/client.rb', line 33 def players @players end |
#sports ⇒ SportsOddsAPI::Resources::Sports (readonly)
39 40 41 |
# File 'lib/sports_odds_api/client.rb', line 39 def sports @sports end |
#stats ⇒ SportsOddsAPI::Resources::Stats (readonly)
42 43 44 |
# File 'lib/sports_odds_api/client.rb', line 42 def stats @stats end |
#stream ⇒ SportsOddsAPI::Resources::Stream (readonly)
48 49 50 |
# File 'lib/sports_odds_api/client.rb', line 48 def stream @stream end |
#teams ⇒ SportsOddsAPI::Resources::Teams (readonly)
30 31 32 |
# File 'lib/sports_odds_api/client.rb', line 30 def teams @teams end |