-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
README updated - Cocktails API docs adjusted with REST examples
- Loading branch information
1 parent
c62f5f6
commit 2299218
Showing
1 changed file
with
96 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,4 @@ | ||
<div align="left"> | ||
<a href="https://github.com/juanroldan1989/shaken_not_stirred"><img src="https://static1.fashionbeans.com/wp-content/uploads/2019/03/martinimain.jpg" alt="shaken_not_stirred ruby logo" /></a> | ||
</div> | ||
<img src="https://media.giphy.com/media/zd1VtTAjLRHNe/giphy.gif" width="100%" /> | ||
|
||
# ShakenNotStirred | ||
[![Gem Version](https://badge.fury.io/rb/shaken_not_stirred.svg)](https://badge.fury.io/rb/shaken_not_stirred) | ||
|
@@ -10,7 +8,7 @@ | |
<!-- [![Build Status](https://travis-ci.com/juanroldan1989/shaken_not_stirred.svg?branch=master)](https://travis-ci.com/juanroldan1989/shaken_not_stirred) --> | ||
<!-- [![Coverage Status](https://coveralls.io/repos/github/juanroldan1989/shaken_not_stirred/badge.svg?branch=master)](https://coveralls.io/github/juanroldan1989/shaken_not_stirred?branch=master) --> | ||
|
||
Ruby client for [Cocktails API](https://juanroldan.com.ar/cocktails-api-landing) | ||
Ruby client for [Cocktails API](https://cocktailsapi.xyz) | ||
|
||
<!-- API Docs [here](https://juanroldan.com.ar/cocktails-api-docs) --> | ||
|
||
|
@@ -38,7 +36,7 @@ gem "shaken_not_stirred", "~> 0.0.7" | |
|
||
## 1. Usage | ||
|
||
All `Free`, `Basic`, `Advanced` and `Premium` plans available [here](https://juanroldan.com.ar/cocktails-api-landing) | ||
All `Free`, `Basic`, `Advanced` and `Premium` plans available [here](https://cocktailsapi.xyz) | ||
|
||
Once completed this quick [form](https://docs.google.com/forms/d/12Ofvx3wg3fIwiS2u41JAv5CNtIExjenU7KVpqyIwMi8/viewform) the API Key will be sent to you by Juan Roldan (`[email protected]`) | ||
|
||
|
@@ -61,60 +59,106 @@ filter = ShakenNotStirred.new | |
then call API methods, for instance: | ||
|
||
|
||
### `Cocktails` endpoint | ||
### `Cocktails` endpoint (Library vs. REST) | ||
|
||
To fetch cocktails with `ginger` on its name: | ||
|
||
```ruby | ||
filter.by_name("ginger") | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?name=ginger" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
To fetch cocktails with `amazing` on its description: | ||
|
||
```ruby | ||
filter.by_description("amazing") | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?description=amazing" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
To fetch cocktails with `rum` on their ingredients: | ||
|
||
```ruby | ||
filter.by_ingredients(["rum"]) | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?ingredients[]=rum" -H "Authorization: Token token=your_api_key" | ||
|
||
# cocktails with `rum` OR `gin` within their ingredients | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?ingredients[]=rum,gin" -H "Authorization: Token token=your_api_key" | ||
|
||
# cocktails with `tequila` AND `vodka` within their ingredients | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?ingredients_only[]=tequila,vodka" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
To fetch cocktails with `classic` on their categories: | ||
|
||
```ruby | ||
filter.by_categories(["classic"]) | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?categories[]=classic" -H "Authorization: Token token=your_api_key" | ||
|
||
# cocktails with `drinks` OR `inventions` within their categories | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?categories[]=drinks,inventions" -H "Authorization: Token token=your_api_key" | ||
|
||
# cocktails with `inventions` AND `brandy` within their categories | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?categories_only[]=inventions,brandy" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
To fetch cocktails with `dinner` on their timing: | ||
|
||
```ruby | ||
filter.by_timing("dinner") | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?timing=dinner" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
To fetch cocktails that belong to the `International Bartender Association`: | ||
|
||
```ruby | ||
filter.by_iba("true") | ||
# OR | ||
filter.by_iba(true) | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?iba=true" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
To fetch cocktails that don't belong to the `International Bartender Association`: | ||
|
||
```ruby | ||
filter.by_iba("false") | ||
# OR | ||
filter.by_iba(false) | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?iba=false" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
To fetch cocktails that contain `ice` on many fields: | ||
|
||
```ruby | ||
filter.by_multiple("ice") | ||
``` | ||
|
||
# fields included are: `name`, `description`, `ingredients`, `categories` & `timing` | ||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?multiple=ice" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
PS: fields searched by are: `name`, `description`, `ingredients`, `categories` & `timing`. | ||
|
||
To fetch cocktails randomnly: | ||
|
||
```ruby | ||
|
@@ -129,6 +173,17 @@ filter.by_random(2) | |
filter.by_random(n) | ||
``` | ||
|
||
```ruby | ||
# get a random cocktail on every request | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?random=1" -H "Authorization: Token token=your_api_key" | ||
|
||
# get 2 random cocktails on every request | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?random=2" -H "Authorization: Token token=your_api_key" | ||
|
||
# get N random cocktails on every request | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?random=n" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
#### All filters are chainable | ||
|
||
To fetch cocktails that: | ||
|
@@ -141,8 +196,6 @@ To fetch cocktails that: | |
filter = ShakenNotStirred.new | ||
|
||
filter.by_categories(["classic"]).by_iba(true).by_ingredients(["rum"]) | ||
|
||
filter.results | ||
``` | ||
|
||
Once applied all the filters you need, make the API call to get the quotes: | ||
|
@@ -151,6 +204,10 @@ Once applied all the filters you need, make the API call to get the quotes: | |
filter.results | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?categories[]=classic&iba=true&ingredients[]=rum" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
### `Categories` endpoint | ||
|
||
Cocktails API also provides an endpoint with all `categories` available to search by. | ||
|
@@ -163,6 +220,10 @@ filter.categories | |
filter.results | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/categories" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
### `Ingredients` endpoint | ||
|
||
Cocktails API also provides an endpoint with all `ingredients` available to search by. | ||
|
@@ -175,9 +236,17 @@ filter.ingredients | |
filter.results | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/ingredients" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
### Pagination | ||
|
||
Pagination behavior is present in all 3 endpoints: `cocktails`, `categories` and `ingredients`. | ||
Results returned per page: 20. | ||
|
||
Pagination behavior is present in all 3 endpoints | ||
|
||
#### Cocktails | ||
|
||
```ruby | ||
filter = ShakenNotStirred.new | ||
|
@@ -188,6 +257,13 @@ filter.by_page(2) | |
filter.results | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/cocktails?page=2" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
|
||
#### Categories | ||
|
||
```ruby | ||
filter = ShakenNotStirred.new | ||
|
||
|
@@ -197,6 +273,12 @@ filter.categories.by_page(4) | |
filter.results | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/categories?page=4" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
#### Ingredients | ||
|
||
```ruby | ||
filter = ShakenNotStirred.new | ||
|
||
|
@@ -206,6 +288,10 @@ filter.ingredients.by_page(5) | |
filter.results | ||
``` | ||
|
||
```ruby | ||
$ curl "http://api-cocktails.herokuapp.com/api/v1/ingredients?page=5" -H "Authorization: Token token=your_api_key" | ||
``` | ||
|
||
## 2. Implementation | ||
Setting up this gem to work is really easy. Even more if you use `has_scope` gem: | ||
|
||
|