af83

Érigez rapidement des API avec Grape

Ruby permet de faire simplement des choses difficiles. Mais faire des API REST (ou approchantes) restait pas plus compliqué que ça ne devrait. Avec Sinatra, on a souvent l'impression de devoir écrire bien plus de code à la main que l'on devrait. De l'autre coté, avec Rails, on a l'impression de passer son temps à désactiver des fonctionnalités ou de les surcharger.

Il existe maintenant une solution intermédiaire, spécialement adaptée pour construire des API REST : Grape. Ce micro-framework s'inspire de Sinatra mais offre en plus des petits trucs bien pratiques pour développer des API REST comme le versionning :

class ChuckNorrisFactsAPI < Grape::API
  prefix 'api'
  version 'v1'

  get 'random' do
    ChuckNorris::Facts.random
  end
end

# GET /api/v1/random
#   => {"fact": "Chuck Norris can beat Godzilla and King Kong in a hot dog fight "}

Par défaut, Grape renvoie du JSON, mais la prise en charge de formats multiples est sur la roadmap avec d'autres fonctionnalités bien sympathiques comme le rate-limiting ou la possibilité de créer de API de streaming.

Ainsi, Grape sera bientôt l'outil idéal pour faire des API comme #newtwitter.

blog comments powered by Disqus