Sinatraは、Rubyで書かれた軽量なWebアプリケーションフレームワークです。Ruby on Railsのようなフルスタックなフレームワークとは異なり、最小限の構成でWebアプリケーションを素早く構築することができるため、小規模なAPIやシンプルなWebサービスの開発に適しています。
特徴
-
シンプルな構文と設計
-
ルーティングやレスポンスの記述が非常に簡潔です。
-
Rubyの標準ライブラリやRack(RubyのWebサーバーインターフェース)に直接アクセスできます。
-
-
最小限の依存関係
-
Railsのように多数の機能が組み込まれていないため、必要な機能だけを選んで追加できます。
-
-
学習コストが低い
-
Rubyの基本文法を理解していれば、数分でSinatraアプリケーションを作成できます。
-
基本構造とルーティングの例
-
get '/'は、HTTPのGETメソッドに対応したルートの定義です。 -
params[:name]はURLパラメータを取得する方法です。
主な機能
| 機能 | 説明 |
|---|---|
| ルーティング | get, post, put, delete などHTTPメソッドに対応したルート定義が可能 |
| ビュー描画 | erb, haml, slim などのテンプレートエンジンをサポート |
| リダイレクト | redirect '/new_path' で簡単にリダイレクト可能 |
| セッション管理 | enable :sessionsでセッションが有効化可能 |
| ミドルウェア利用 | Rackミドルウェアと連携しやすい |
テンプレートの使用例(ERB)
views/greet.erb:
実用例
-
APIサーバーのプロトタイプ
-
Webクローラの簡易管理インターフェース
-
Slack botのWebhookエンドポイント
-
IoTデバイスの設定用UI
導入と起動方法
app.rbを作成し、以下で起動:
Sinatraと他のRubyフレームワークとの比較
| フレームワーク | 特徴 |
|---|---|
| Sinatra | 軽量・単機能。迅速な開発に向いている |
| Ruby on Rails | フルスタック・大型開発向き。学習コストが高め |
| Hanami | アーキテクチャ重視で再利用性に優れる |
まとめ
Sinatraは、RubyでWebアプリケーションを素早く構築したい場合に最適なフレームワークです。Railsよりも柔軟で、構成も少なく、プロトタイピングや小規模なサービスに向いています。Rackとの親和性も高く、RubyによるWeb開発の自由度を活かすことができます。
生成日:2025/05/03