0

Sinatra で GET リクエストを処理し、同じサーバーで別のボディで PATCH リクエストを行う方法はありますか? ユーザーがリクエストを行い、サーバーがそれを?GET /clean_beautiful_apiにリダイレクトします。PATCH /dirty/clogged_api_url_1?crap=2 "{request_body: 1}"

機能に干渉することなくレガシー API をクリーンアップしたい。

4

1 に答える 1

0

私が正しく理解していれば、最も簡単な方法は、に使用されるブロックをpatchヘルパーに抽出することです。

patch "/dirty/clogged_api_url_1"
  crap= params[:crap]
end

に:

helpers do
  def patch_instead( params={} )
    # whatever you want to do in here
    crap= params[:crap]
  end
end

get "/clean_beautiful_api" do
  patch_instead( params.merge(request_body: 1) )
end


patch "/dirty/clogged_api_url_1"
  patch_instead( params )
end

または、ラムダを使用できます...

Patch_instead = ->( params={} ) {
  # whatever you want to do in here
  crap= params[:crap]
}

get "/clean_beautiful_api" do
  Patch_instead.call( params.merge(request_body: 1) )
end

# you get the picture

主なことは、メソッドを別の場所に抽出してから呼び出すことです。


編集:を介して Rack インターフェイスを使用して内部的に別のルートをトリガーcallすることもできます。

于 2013-03-19T18:28:09.313 に答える