Bufu

Giant Bomb API client for Elixir (Shadow Teddie-approved).

See Giant Bomb API information and documentation for more details.

Usage

iex> Bufu.Game.get 8825
{:ok, %Bufu.Game{name: "Final Fantasy IX", ...}}

iex> Bufu.Game.get! 8825
%Bufu.Game{name: "Final Fantasy IX", ...}

iex> Bufu.Location.list! filter: "name:ivalice"
[%Bufu.Location{name: "Ivalice", ...}, ...]

iex> Bufu.Game.get!(8825) |> Map.get(:developers) |> hd |> Bufu.Company.load! |> Map.get(:name)
"Squaresoft"

See the documentation for more details.

Potential improvements

  1. The search endpoint is not currently implemented. It would take some work to get it to correctly serialize each resource it returns. You can still search for a single resource by providing the filter option (see examples).
  2. Per-client or global response caching could be implemented using ETS or a pluggable data store.