web-dev-qa-db-ja.com

オプションのクエリパラメータを使用したSinatra

オプションのクエリパラメータを使用してSinatraAPIルートを作成したい。次のようにクエリパラメータを追加できます。

%r {^/mysql/data /(?)/ start_time =(?\ w *)/?}

ただし、上記のルートに対応するルートは「/ mysql/data /:name/start_time =:start_time」のようになります。

クエリパラメータをオプションとして、URL形式で宣言する必要があります。

例えば:

/ mysql/data /:name?start_time =:start_time&end_time =:end_time

シナトラでこれを行う方法はありますか?

15
NagaLakshmi

シナトラドキュメントからの引用:

# Routes may also utilize query parameters:

get '/posts' do
  # matches "GET /posts?title=foo&author=bar"
  title = params[:title]
  author = params[:author]
  # uses title and author variables; query is optional to the /posts route
end

あなたの場合、単に/mysql/data/:nameを使用すると、クエリパラメータはparamsを介して自動的に利用可能になります。

21
branch14