vainglory-api
A Ruby libary wrapper for the Vainglory API
See also: YARD Documentation, Official Vainglory API Documentation
Getting Started
VaingloryAPI works with Ruby 2.0 onwards. Please refer to the YARD Documentation for a better understanding of how everything works.
Installation
You can add it to your Gemfile with:
gem 'vainglory-api'
Then run bundle install
You can also install it manually with:
gem install vainglory-api
Usage
You can create an instance of the API client by initializing with your API key and specified region (na
is the default):
client = VaingloryAPI.new('YOUR_API_KEY', 'na')
Region Errors
A valid region short name is required when instantiating a client. Providing an invalid region short name will raise VaingloryAPI::RegionNameError
.
Helper Attributes
All client methods return an OpenStruct
object containing the response attributes with some additional helper attributes.
response = client.samples
response.code # The HTTP response code
response.success? # Returns true if the response code is less than 300
response.raw # The complete HTTP response
Rate Limits
Each request will return data about your rate limits.
response.rate_limit # Request limit per day / per minute
response.rate_remaining # The number of requests left for the time window
response.rate_reset # The remaining window before the rate limit is refilled in UTC epoch nanoseconds.
More information: https://developer.vainglorygame.com/docs#rate-limits
Filtering
Currently, filters are supported by these client methods:
VaingloryAPI::Client#matches
VaingloryAPI::Client#samples
You can pass filters in as a hash using the exact Query Parameter key names outlined in the Vainglory API Documentation.
# Example matches request with filter
client.matches('filter[playerNames]' => 'boombastic04,IHaveNoIdea')
Methods
To get multiple matches:
client.matches
To get single match data, you must provide the ID of a match:
client.match('37f94e56-1360-11e7-a250-062445d3d668')
You can search for data of one or more players by passing their in-game names (IGNs):
client.players('boombastic04', 'IHaveNoIdea')
To get data about a single player, you must provide the ID of the player:
client.player('6abb30de-7cb8-11e4-8bd3-06eb725f8a76')
To get Telemetry data, you must provide the data URL:
client.telemetry('https://gl-prod-us-east-1.s3.amazonaws.com/assets/semc-vainglory/na/2017/03/28/03/07/b0bb7faf-1363-11e7-b11e-0242ac110006-telemetry.json')
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/cbortz/vainglory-api-ruby.
License
MIT License. Copyright 2017 Chet Bortz