Sinatra

Sinatraは、Rubyで書かれた軽量なWebアプリケーションフレームワークです。Ruby on Railsのようなフルスタックなフレームワークとは異なり、最小限の構成でWebアプリケーションを素早く構築することができるため、小規模なAPIやシンプルなWebサービスの開発に適しています。


特徴

  1. シンプルな構文と設計

    • ルーティングやレスポンスの記述が非常に簡潔です。

    • Rubyの標準ライブラリやRack(RubyのWebサーバーインターフェース)に直接アクセスできます。

  2. 最小限の依存関係

    • Railsのように多数の機能が組み込まれていないため、必要な機能だけを選んで追加できます。

  3. 学習コストが低い

    • Rubyの基本文法を理解していれば、数分でSinatraアプリケーションを作成できます。


基本構造とルーティングの例

ruby
require 'sinatra' get '/' do "Hello, Sinatra!" end get '/hello/:name' do "Hello, #{params[:name]}!" end
  • get '/'は、HTTPのGETメソッドに対応したルートの定義です。

  • params[:name]はURLパラメータを取得する方法です。


主な機能

機能 説明
ルーティング get, post, put, delete などHTTPメソッドに対応したルート定義が可能
ビュー描画 erb, haml, slim などのテンプレートエンジンをサポート
リダイレクト redirect '/new_path' で簡単にリダイレクト可能
セッション管理 enable :sessionsでセッションが有効化可能
ミドルウェア利用 Rackミドルウェアと連携しやすい

テンプレートの使用例(ERB)

ruby
get '/greet/:name' do @name = params[:name] erb :greet end

views/greet.erb:

erb
<h1>Hello, <%= @name %>!</h1>

実用例

  • APIサーバーのプロトタイプ

  • Webクローラの簡易管理インターフェース

  • Slack botのWebhookエンドポイント

  • IoTデバイスの設定用UI


導入と起動方法

bash
gem install sinatra

app.rbを作成し、以下で起動:

bash
ruby app.rb

Sinatraと他のRubyフレームワークとの比較

フレームワーク 特徴
Sinatra 軽量・単機能。迅速な開発に向いている
Ruby on Rails フルスタック・大型開発向き。学習コストが高め
Hanami アーキテクチャ重視で再利用性に優れる

まとめ

Sinatraは、RubyでWebアプリケーションを素早く構築したい場合に最適なフレームワークです。Railsよりも柔軟で、構成も少なく、プロトタイピングや小規模なサービスに向いています。Rackとの親和性も高く、RubyによるWeb開発の自由度を活かすことができます。

生成日:2025/05/03