-
Notifications
You must be signed in to change notification settings - Fork 0
API Documentation
NOTE: The Microbrewit API backend is under active development and pre-alpha build. The API will continue to evolve as changes and decisions are made. The API specification will be locked down as the beta draws closer.
The Microbrewit API is a RESTful API that consist of a series of resources (users, recipees, breweries, etc) each with it's own route (api.microbrew.it/user/...). The API is developed according to format rules provided in the JSON API draft.
The API use various forms of requests depending on the action being done for a resource. Each request will return a standard json response. If you want to use the API from within a browser you need to include a named parameter callback in the request, with a function name as value. This name will be used to wrap the JSON response. See JSONP on Wikipedia for more information.
The API returns JSON responses in two general forms:
{'message': 'Info about response',
'something', 'somevalue'}
All message responses includes a message key with a corresponding string value. This is used to provide information about the response. The response object can also include other data depending on which URL is requested.
Example:http://api.microbrew.it/user/login/bob?password=pass&callback=userlogin
Yields:userlogin({})
{'error': 'Info about error',
'errorcode', 'somecode'}
Error response objects will always include an error key which can be used to identify when errors occur. They will also include an error code which can be used to identify the nature and origin of the errors. The error object may include other information as well.
POST - api.microbrew.it/user/add Use this endpoint to add or edit users. The API will automatically determine if a user exists or not, and add or update the user correspondingly.
- id (String) Required
- email (String) Required
- breweryName (String) Required
- settings (JSON object as String) Required
#####Add Request: Send a POST request with the following parameter value pairs...
id => thisismyusername
email => some@email.com
breweryName => My Awesome Brewery
settings: => {}
Response:
{
meta: {
total: 1236,
returned: 1,
skip: 0,
size: 20
},
users: [{
id: 'thisismyusername',
href: 'http://api.microbrew.it/user/thisismyusername',
username: 'thisismyusername',
email: 'some@email.com',
breweryName: 'My Awesome Brewery',
settings: {}
}]
}
#####Update: Send a POST request with the following parameter value pairs...
id => thisismyusername
email => new@email.com
breweryName => My Not So Awesome Brewery
settings: => {}
Response:
{
meta: {
total: 1236,
returned: 1,
skip: 0,
size: 20
},
users: [{
id: 'thisismyusername',
href: 'http://api.microbrew.it/user/thisismyusername',
username: 'thisismyusername',
email: 'new@email.com',
breweryName: 'My Not So Awesome Brewery',
settings: {}
}]
}
POST - api.microbrew.it/user/login/:username
GET - api. microbrew.it/user/logout/:username
POST - api.microbrew.it/user/update/:username (username needs to be implemented in node api) Request params: “email”, “password” and “settings”.
GET - api.microbrew.it/user/:userids
Single user: http://api.microbrew.it/user/thisismyusername
{
meta: {
total: 1236,
returned: 1,
skip: 0,
size: 20
},
users: [{
id: 'thisismyusername',
href: 'http://api.microbrew.it/user/thisismyusername',
username: 'thisismyusername',
email: 'some@email.com',
breweryName: 'My Awesome Brewery',
settings: {}
}]
}
Beers are resources that contain details (e.g description, brewery, ABV), (optionally) a recipe and (optionally) information about what beer it is a fork or clone of.
POST - api.microbrew.it/beer
name => "name of beer",
fork => api.microbrew.it/beer/somebrewery/sdfkjsfdjkls/mybeer
clone => api.microbrew.it/beer/somebrewery/sdfkjsfdjkls/mybeer
GET - api.microbrew.it/beer Retrieves a filtered list of beers given a set of parameters. The request
- size (number between 0 and 100) Required
- skip (number between 0 and returned) Required
- username (String) Optional
- beername (String) Optional
- brewery_name (String) Optional
- type (String) Optional
- abv_min (number between 0.0 and 100.0) Optional
- abv_max (number between 0.0 and 100.0) Optional
- ibu_min (number between 0 and 100) Optional
- ibu_max (number between 0 and 100) Optional
- srm_min (number between 0 and 100) Optional
- srm_max (number between 0 and 100) Optional
Parameters:
size: 20,
skip: 0,
beername: Awsomebeer
Returns:
{
meta: {
total: 123608,
returned: 2,
skip: 0,
size: 2
},
links: {
beer.brewery: {
href: 'http://api.microbrew.it/brewery/:breweryid/',
type: 'brewery'
}
},
beers: [{
id: 'http://microbrew.it/ontology/Beer/:breweryname/:breweryid/Awesomebeer',
href: 'http://api.microbrew.it/beer/:breweryname/:breweryid/Awesomebeer',
brewery: 'My Brewery',
beername: 'Awesomebeer',
type: 'Wit',
abv: 4.56,
ibu: 20,
srm: 20,
links: {
breweryId: '123612467659876'
},
{
id: 'http://microbrew.it/ontology/Beer/:breweryname/:breweryid/Awesomebeer2',
href: 'http://api.microbrew.it/beer/:breweryname/:breweryid/Awesomebeer2',
brewery: 'My Brewery',
beername: 'Awesomebeer2',
type: 'Triple',
abv: 9.56,
ibu: 30,
srm: 40,
links: {
breweryId: '123612467659876'
}
}]
}
GET - api.microbrew.it/beer/:breweryname/:breweryid/:beer
GET - api.microbrew.it/beer/:breweryname/:breweryid/:beer/details
GET - api.microbrew.it/beer/:breweryname/:breweryid/:beer/recipe
GET - api.microbrew.it/beer/:breweryname/:breweryid/:beer/forks
GET - api.microbrew.it/beer/:breweryname/:breweryid/:beer/clones
GET - api.microbrew.it/beer/:breweryname/:breweryid/:beer/parent
GET - api.microbrew.it/beer/:breweryname/:breweryid/:beer/children
Breweries are resources that beers are connected to. A brewery can be either commercial (e.g macro brewery, micro brewery or nano brewery) or non-commercial (home brewery).
POST - api.microbrew.it/brewery
GET - api.microbrew.it/brewery
GET - api.microbrew.it/brewery/:breweryid
GET - api.microbrew.it/brewery/:breweryid/details
GET - api.microbrew.it/brewery/:breweryid/beer
GET - api.microbrew.it/brewery/:breweryid/brewers
POST - api.microbrewit/fermentable
GET - api.microbrewit/fermentable
GET - api.microbrewit/fermentable/:fermentable
Request params: ….
POST - api.microbrewit/hops
GET - api.microbrewit/hops
GET - api.microbrewit/hops/:hops
Other ingredients include fruits, infermentable sugars and other things.