API Cake - Build Dynamic API Wrappers

Gem Travis Code Climate Gemnasium


This gem allows you to easily build rich API wrappers with minimal code.

It is HTTParty with a Cake.


Install

$ gem install apicake

Or with bundler:

gem 'apicake'

TL;DR

Turn this hypothetical API URL:

http://api.recipies.com/cakes?layers=3 

To this:

Recipies.cakes layers:3

Using this code only:

class Recipies < APICake::Base
  base_url 'api.recipies.com'
end

Features

  • Uses HTTParty
  • Built in caching
  • Built in save to file
  • Built in response parsing (part of HTTParty)
  • Built in convert and save to CSV
  • Designed for GET-only APIs (e.g., data services)

Usage

Create a class and inherit from APICake::Base.

This class automatically includes HTTParty, so you can do whatever you do in HTTParty. In addition, the APICake::Base class defines a method_missing method, so any call to an undefined method, will simply be converted to a URL.

For example:

class Recipies << APICake::Base
  base_url 'api.recipies.com/v1'
end

recipies = Rcipies.new

# This will access http://api.recipies.com/v1/cakes
recipies.cakes

# This will access http://api.recipies.com/v1/cakes/chocolate
recipies.cakes 'chocolate'

# This will access http://api.recipies.com/v1/cakes/chocolate?layers=3
recipies.cakes 'chocolate', layers: 3

See the Examples folder for more examples.

Caching

APICake uses Lightly for caching. By default, cached objects are stored in the ./cache directory for 3600 seconds.

See the caching example.

Method Reference

For a detailed explanation of the services and methods you get when inheriting from APICake::Base, see the class documentation.