Grapeというのを触る機会があったので
もちろんグレープといっても
これではありませんし、
こちらでもありません。
APIを作るのに特化したフレームワークで、例によってGemfileに
gem 'grape'
って書いたあと
bundle
で使えるようになります*1。
文法とかそのへん
なんかSinatraとRailsのroutes.rbっぽい書き方ができます。
class API < Grape::API # ex)http://localhost:3939/api prefix 'api' #ルートのプレフィックスをつける # ex)http://localhost:3939/api/v1 version 'v1', using: :path format :json #これでJSONをやり取りできるようにする #API resource :account do # http://localhost:3939/api/v1/account以下の処理 desc "アカウント登録" #APIの概要 params do requires :mail_address, type: String requires :password, type: String requires :name, type: String end post :register do #/api/vi/account/register にPOSTでリクエストを送るとここの処理をやる #なんかやる end #以下省略 end end
Sinatraと組みあわせるとあとはconfig.ruに
require 'sinatra' require 'grape' require './api/api.rb' #上のコード保存したファイルのパス require './app.rb' use Rack::Session::Cookie run Rack::Cascade.new [API, Web]
とすると大体うまく動いてくれるようです。
*1:最近bundleをパラメーター無しで動かすとGemをインストールすることに気づいた