Build API using Grape

-- Coding Demo --

Without Rails

Alongside Rails

Alongside Rails

  • Install
  • Structure
  • Autoload path
  • Routes
  • Swagger

Install

gem 'grape'

bundle install

Structure

  1. app/api
  2. folder == endpoint
  3. 1 main api class
  4. mount all apis into main api class

Autoload

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

Routes

  1. Mount main api class only. example : mount Hotelet::API => '/'
  2. Rake task for grape routes

Swagger

documenting all your api !

  1. Install swagger
  2. Install grape-swagger-ui
  3. Add swagger helper (initialize)

Without Rails

  • Add Gemfile rack and grape
  • Using config.ru
  • 1 main api class
  • moduling api classes (require all files)

Gemfile

source 'https://rubygems.org'

gem 'rack'
gem 'grape'

config.ru

  1. require main api : require File.expand_path('api', File.dirname(__FILE__))
  2. run

Main API

  1. require grape
  2. require all apis
  3. mount all apis in main api

Homework

what if I want to use activerecord + grape without using rails ?

Build API using Grape

By Mukhammad Yunan Helmy

Build API using Grape

  • 565