brewerydb is a Go library for accessing the BreweryDB API
import "github.com/naegelejd/brewerydb"
Construct a new Client
using your BreweryDB API key:
client := brewerydb.NewClient("<your API key>")
Then use the available services to access the API. For example:
// Get any random beer
beer, _ := client.Beer.Random(&brewerydb.RandomBeerRequest{ABV: "8"})
fmt.Println(beer.Name, beer.Style.Name)
or
// Get all breweries established in 1983
bs, err := client.Brewery.List(&brewerydb.BreweryListRequest{Established: "1983"})
if err != nil {
panic(err)
}
for _, b := range bs {
fmt.Println(b.Name, b.Website)
}
or
// "What is in Dragon's Milk?"
bl, _ := client.Search.Beer("Dragon's Milk", nil)
var beerID string
for _, beer := range bl.Beers {
if beer.Name == "Dragon's Milk" {
beerID = beer.ID
}
}
if beerID == "" {
panic("Dragon's Milk not found")
}
ingredients, _ := client.Beer.ListIngredients(beerID)
adjuncts, _ := client.Beer.ListAdjuncts(beerID)
fermentables, _ := client.Beer.ListFermentables(beerID)
hops, _ := client.Beer.ListHops(beerID)
yeasts, _ := client.Beer.ListYeasts(beerID)
fmt.Println("Dragon's Milk:")
fmt.Println(" Ingredients:")
for _, ingredient := range ingredients {
fmt.Println(" " + ingredient.Name)
}
fmt.Println("\n Adjuncts:")
for _, adjunct := range adjuncts {
fmt.Println(" " + adjunct.Name)
}
fmt.Println(" Fermentables:")
for _, fermentable := range fermentables {
fmt.Println(" " + fermentable.Name)
}
fmt.Println(" Hops:")
for _, hop := range hops {
fmt.Println(" " + hop.Name)
}
fmt.Println(" Yeasts:")
for _, yeast := range yeasts {
fmt.Println(" " + yeast.Name)
}
This library is under development. Please feel free to suggest design changes or report issues.
This library is distributed under the BSD-style license found in the LICENSE file.