viernes, 28 de agosto de 2015

Como crear un API con Grape y Rails

Configuracion

Primeramente necesitas tener grape en tu Gemfile

para esto solo necesitas agregar gem 'grape'
tan facil como quitarle un dulce a un niño :D


Ahora, rails necesitare cargar los archivos, por eso necesitamos modificar config/application.rb
con lo siguiente:

    config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
    config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]

Y en config/routes.rb, puesto que queremos las rutas /api/..../....
  mount API => '/'

Necesitamos crear una carpeta dentro de app llamada api, dentro de esta crearemos una clase API
donde podemos configurar algunas opciones como el tipo de formato, version, prefijo y otros mas que se pueden encontrar en su documentacion.

app/api/api.rb

class API < Grape::API
  prefix :api
  format :json

  mount ::V1::Base
end

Ahora crearemos una carpeta llamada v1, o la version que tu quieras, dentro de ella creemos un archivo llamado base.rb, en este encapsularemos todas las clases que estemos usando para esta version.

app/api/v1/base.rb

module V1
  class Base < API
    mount UsersController
  end
end


Despues dentro de esta misma agregaremos un archivo, en este caso yo lo llame UsersController, ya que si solo dejaba User, habia conflictos con el modelo User.

app/api/v1/users_controller.rb

module V1
  class UsersController < Grape::API

    desc 'Returns all users'
    get :users do
       User.all
    end

  end
end

Solo es un ejemplo de un simple get, pero proximamente ire publicando como es que ha ido creciendo la app.


Diviertanse!!! :D