0.0
No commit activity in last 3 years
No release in over 3 years
ApiBuilder is a Ruby on Rails template engine that allows for multiple formats being laid out in a single specification, currently XML and JSON.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

About¶ ↑

ApiBuilder is a Ruby on Rails template engine that allows for multiple formats being laid out in a single specification, currently XML and JSON.

If you only need JSON, I recommend the Jbuilder gem: github.com/rails/jbuilder

Installation¶ ↑

In your Gemfile:

gem 'api_builder'

And run bundle install.

Examples¶ ↑

In app/views/api/users/index.apibuilder:

array :users do
  @users.each do |user|
    element :user do
      id @user.id
      name @user.name
    end
  end
end

Returns:

[
  {
    "id": 1234,
    "name": "Peter Jackson"
  },
  {
    "id": 1235,
    "name": "Marilyn Monroe"
  }
]

And the equivalent XML.

In app/views/api/users/show.apibuilder:

element :user do
  id @user.id
  name @user.name
  address do
    street @user.street
    city @user.city
  end
  array :interests do
    @user.interests.each do |interest|
      element :interest => interest.name
    end
  end
end

Returns:

{
  "id": 1234,
  "name": "Peter Jackson",
  "address": {
    "street": "123 High Way",
    "city": "Gotham City"
  },
  "interests": [
    "Movies",
    "Computers",
    "Internet"
  ]
}

And the equivalent XML.

You can then call your API like this:

http://example.com/api/users?format=json

or

http://example.com/api/users?format=xml

and so on.

More examples¶ ↑

Here’s some more examples to get you started.

Root element¶ ↑

element :test => "value"

Element with reserved name¶ ↑

element :element => "value"

Model element¶ ↑

element :article => Article.first

Model array¶ ↑

element :articles => Article.all

Features¶ ↑

Multiple formats¶ ↑

ApiBuilder supports both JSON and XML.

JSONP requests (callback parameter)¶ ↑

ApiBuilder supports JSONP requests. Just call your URL with a callback parameter, e.g.:

http://example.com/api/users?format=json&callback=myCallback

Contributors¶ ↑

  • Lasse Bunk (creator)

  • Dennis Reimann

Support¶ ↑

Questions and suggestions are welcome at lassebunk@gmail.com. My blog is at lassebunk.dk.

Copyright © 2011 Lasse Bunk, released under the MIT license