share facebook facebook2 twitter menu hatena pocket slack

2014.07.10 THU

Sinatra を使って 5 分位で作る API サーバー

川原 洋平

WRITTEN BY川原 洋平

cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平@inokara)です。

はじめに

  • 自分メモ
  • チョー小ネタです
  • キューピー 3 分クッキング風にいきます

参考


Sinatra

Sinatra について

  • 泣く子も黙る Ruby 製の軽量 Web フレーワークっぽいもの(厳密にはフレームワークではないようです)
  • Sinatra

インストール

sudo gem install sinatra —no-ri —-rdoc -V

ここまでで 2 分くらい…(環境に応じて)

今回は既に sinatra と json の gem がインストールされた環境で作業します。


盛り付け

いきなりソースを

え、これだけ?と思わってしまいますが、これだけです。

require 'sinatra'
require 'json'

get '/hello' do
  v = {
        key1: “a” ,
        key2: “b”,
  }

 v.to_json
end

このソースを適当な名前で保存しましょう。今回は qp01.rb という名前で保存します。

起動

以下のようにして qp01.rb を起動します。

ruby qp01.rb

そうすると以下のように Webrick が起動します。

01

上記のようにローカルホストの 4567 ポートでお待ちのようです。


試食

curl で…

以下のように curl でリクエストを投げてみます。

curl localhost:4567/hello

すると…

02

上記のような結果が返ってきました。

jq でちょっと味付け

出力がちょっとさみしいので以下のように jq で味付けします。

curl -s localhost:4567/hello | jq .

以下のようにちょっと見栄えがよくなりますね。

03


エンディング

そろそろ 5 分が経過しようとしています…

Sinatra を使えばホンの数行で API サーバーが作れることがわかりました。今回は単純に JSON を返すだけでしたが、実際にちゃんとしたものを作ろうとするとエラー処理やデータの取得、複雑な JSON の解析等が必要なので数行というわけにはいかないと思います。しかしながら、ルーティング等の Web サーバーとしての処理は Sinatra に任せられるのが嬉しいですよね!

元記事はこちら