Sinatra   ルーティング

ホーム


ルーティング

Web サービスや Web アプリケーションにおいて、 「どこにどの形式でアクセスするか」という場合の「どこに」を「ルート」 と呼びます。 具体的に言うと、URL の最後につける / はルートです。 ブラウザに URL を入力する際に、最後の / スラッシュは省略することができますが、 ブラウザが自動的に補完して / をつけています。このルートとどの「形式」を結びつけるかということを 「ルーティング」と呼びます。 形式には「Get」「Post」「Delete」「Put」などがあります。

コーディング

任意の名前の作業用ディレクトリに、任意の名前のルビーファイルを作ります。 ここでは「myapp」ディレクトリに、「app.rb」というファイルを作っています。 app.rb の内容は次のとおりです。


require 'sinatra'
require 'sinatra/reloader'

get '/' do
  "Hello Sinatra!"
end

get '/hello/:name' do
  "hello #{params[:name]}"
end

# ブロック引数
get '/hello/:fname/:lname' do |f, l|
  "hello #{f} #{l}"
end

# 正規表現
get %r{/user/([0-9]*)} do
  "user id = #{params[:captures][0]}"
end

# ワイルドカード
get '/*/*' do
  "#{params[:splat][0]} #{params[:splat][1]}"
end

# どのパターンにもあてはまらない場合
not_found do
  "404 Not Found"
end
    

実行


$ ruby app.rb
== Sinatra (v2.0.5) has taken the stage on 4567 for development with backup from Puma
Puma starting in single mode...
* Version 3.12.0 (ruby 2.6.1-p33), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:4567
Use Ctrl-C to stop
    

ブラウザを起動して「localhost:4567」にアクセスしてください。

確認


localhost:4567/
Hello Sinatra!

localhost:4567/hello/app
hello app

localhost:4567/hello/app/Design
hello app Design

localhost:4567/user/5000
user id = 5000

localhost:4567/abc/
abc

localhost:4567/abc/abc
abc abc

# 最後のスラッシュがない場合
localhost:4567/abc
404 Not Found
    

終了

「Control」キーを押しながら「c」を押します。


^C- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2019-03-09 20:48:09 +0900 ===
- Goodbye!
== Sinatra has ended his set (crowd applauds)
    


3934 visits
Posted: Mar. 09, 2019
Update: Mar. 09, 2019

ホーム ページトップ