ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

Grapeというのを触る機会があったので

もちろんグレープといっても
Varbak.Com
これではありませんし、
http://kabegami.adaga.org/img/20061006020118-2-800x600.jpg
こちらでもありません。

APIを作るのに特化したフレームワークで、例によってGemfileに

gem 'grape'

って書いたあと

bundle 

で使えるようになります*1

文法とかそのへん

なんかSinatraRailsの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をインストールすることに気づいた