Configuracion
Primeramente necesitas tener grape en tu Gemfilepara 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 :apiformat :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