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
-
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
filteroption (see examples). -
The
filterandsortoptions could have nicer interfaces. Currently you have to provide raw strings that are used in the API request. - Per-client or global response caching could be implemented using ETS or a pluggable data store. Local caching is recommended by the API developers, due to the rate limit restrictions.