mercredi 18 mai 2011

API #REST faciles avec GRAPE en #ruby

La partie la plus fastidieuse dans le développement d'un module est la mise en place de l'interface.

Le gem GRAPE prend en charge pour vous toute cette partie interface. Il fournit a votre module une interface REST. Grace à un DSL (Domain Specific language) aussi simple que Sinatra, la déclaration des URL dévient un jeu d'enfant.

ex :
    get :home_timeline do
      authenticate!
      current_user.home_timeline
    end

    get '/show/:id' do
      Tweet.find(params[:id])
    end

(source complet ici)
Grape est capable de définir des espaces de nommage et des numéros de version.Grape repose en grande partie sur RACK.

Pour un de mes modules, j'avais utilisé sinatra pour la partie REST et cela donnait :


(avec  Sinatra)
get '/delete_row' do
  dbconfig= YAML::load(File.open('database.yml'))
  schema= Nosql.new(dbconfig)
  schema.delete_row
"{\"reponse\":\"ok\"}"
 end 
GRAPE prend à sa charge la partie formatage de la réponse en JSON 

 Un article en francais ici.

Aucun commentaire: