Un jour, une gem

26/01/2012

Jeudi c'est acts_as_api

gem install acts_as_api

Pour des réponses XML/JSON 

Marre de faire des API qui ne sont pas DRY ? Alors dites bonjour à acts_as_api, la gem cool et pratique.

À l’usage, c’est plutôt simple : après avoir ajouté la gem à votre Gemfile et fais un petit bundle install on peut commencer :

Model

  1. class User < ActiveRecord::Base
  2.   #on active acts_as_api pour ce model
  3.   acts_as_api
  4.   # on détermine les attributs accessible pour ce model
  5.   api_accessible :name_only do |template|
  6.     template.add :first_name
  7.     template.add :last_name
  8.   end
  9. end

Controller

  1. class UsersController < ApplicationController
  2.   def index
  3.     @users = User.all
  4.     #on répond avec acts_as_api, tous les utilisateurs
  5.     respond_to do |format|
  6.       format.xml { render_for_api :name_only, :xml => @users, :root => :users }
  7.       format.json { render_for_api :name_only, :json => @users, :root => :users }
  8.     end
  9.   end
  10.   def show
  11.     @user = User.find(params[:id])
  12.     #on répond avec acts_as_api, l'utilisateur correspond à l'id donné
  13.     respond_to do |format|
  14.       format.xml { render_for_api :name_only, :xml => @user }
  15.       format.json { render_for_api :name_only, :json => @user }
  16.     end
  17.   end
  18. end

Et voilà, une belle réponse JSON et XML propre. Envie d’en savoir plus ? Les liens utiles :