1.0.2 • Published 7 years ago

punkapi-javascript-wrapper v1.0.2

Weekly downloads
5
License
MIT
Repository
github
Last release
7 years ago

PunkAPI Javascript Wrapper

A JS wrapper for the BrewDog Punk API V2 - an API for retrieving data about BrewDog's beers built by @samjbmason.

Installation

There are 3 ways to install the PunkAPI Javascript Wrapper.

Clone

Clone this repo into your project with:

git clone https://github.com/brettdewoody/punkapi-javascript-wrapper.git

NPM / Yarn

Install via npm or yarn with:

npm install --save punkapi-javascript-wrapper

or

yarn add punkapi-javascript-wrapper

Bower

Install via bower with:

bower install punkapi-javascript-wrapper

Usage

There are several ways the wrapper can be used. The wrapper is available as a library script (option #1), can be imported with Webpack into a bundled script for the browser (option #2), or can be imported into Node (option #3).

Library (Option #1)

Include the compiled library script on your page with:

<script type="text/javascript" src="/path/to/punkapi-javascript-wrapper/dist/punkapi-javascript-wrapper.js"></script>

Then create a new instance of the PunkAPIWrapper and get to work:

const punkAPI = new PunkAPIWrapper()

Webpack for the Browser (Option #2)

Import PunkAPIWrapper in your entry file with

const PunkAPIWrapper = require('/path/to/punkapi-javascript-wrapper/src/punkapi-javascript-wrapper.js')

Then create a new instance of PunkAPIWrapper and get to work:

const punkAPI = new PunkAPIWrapper()

Finally webpack your code using your Webpack config.

Node (Option #3)

The same implementation as Option #2.

Import PunkAPIWrapper in your entry file with

const PunkAPIWrapper = require(punkapi-javascript-wrapper)

Then create a new instance of PunkAPIWrapper and get to work:

const punkAPI = new PunkAPIWrapper()

Here's a Glitch demo showing how to use the wrapper in Node and the results:

Methods

The wrapper provides 5 methods for retrieving all the BrewDog-related info you want:

Note: All methods query the BrewDog Punk API using an asynchronous fetch request and return a Promise. This means you'll need to use .then() to wait for the response and provide a callback for handling the returned data.

const punkAPI = new PunkAPIWrapper()

const randomBeer = PunkAPI.getRandom()

randomBeer.then(beer => {
  alert(beer[0].name)
})

getBeer(:id)

Returns an array of length 1 with the beer matching an ID of :id. :id should be a number corresponding to the ID of the desired beer.

Example: const beer1 = punkAPI.getBeer(1)

getBeers(:options)

Returns an array with beers matching the :options. :options is an object consisting of available filters (below).

Example: const strongBeers = punkAPI.getBeers({'abv_gt': 8})

For the most up-to-date filters please see the PunkAPI docs.

getRandom()

Returns an array of length 1 with a random beer

Example: const randomBeer = punkAPI.getRandom()

getRateLimit()

Returns a number displaying the rate limit. This is currently set to 3600 requests per hour per IP address.

Example: const rateLimit= punkAPI.getRateLimit()

getRateLimitRemaining()

Returns a number displaying the available number of requests remaining for this IP address.

Example: const rateLimitRemaining= punkAPI.getRateLimitRemaining()

Examples

Get a random beer

const randomBeer = PunkAPI.getRandom()

randomBeer.then(beer => {
  alert(beer[0].name)
})

Get strong beers

const strongBeers = PunkAPI.getBeers({'abv_gt': 8})

strongBeers.then(beers => {
  beers.forEach(beer => {
    alert(beer.name)
  })
})

Get remaining request limit const remainingRequests = PunkAPI.getRateLimitRemaining()

remainingRequests.then(requests => {
  alert(requests)
})

Contributing

Please see the Contributing Guide.

License

This project is licensed under the terms of the MIT license.