Ruby 如何在机架中处理post请求

Ruby 如何在机架中处理post请求,ruby,rack,Ruby,Rack,要在Rack中使用json响应,我可以执行如下操作。如何根据请求是GET请求还是PUT请求以及PUT请求附带的数据返回不同的响应?也就是说,检查来自env变量的请求并处理各种情况的惯用方法是什么 require 'json' class Greeter def call(env) [200, {"Content-Type" => "application/json"}, [{x:"Hello World!"}.to_json]] end end run Greeter.

要在Rack中使用json响应,我可以执行如下操作。如何根据请求是GET请求还是PUT请求以及PUT请求附带的数据返回不同的响应?也就是说,检查来自
env
变量的请求并处理各种情况的惯用方法是什么

require 'json'

class Greeter
  def call(env)
    [200, {"Content-Type" => "application/json"}, [{x:"Hello World!"}.to_json]]
  end
end

run Greeter.new

据我所知,在Rack中执行此操作的惯用方法是将您的
env
包装在一个对象中,然后调用
get?
post?
,等等

下面是一个简单的例子:

# config.ru
run(Proc.new do
  req = Rack::Request.new(env)
  response = <<-RESP
  get? #{req.get?}
  post? #{req.post?}
RESP
  [200, {"Content-Type" => "text/plain"}, [response]]
end)

据我所知,在Rack中执行此操作的惯用方法是将您的
env
包装在一个对象中,然后调用
get?
post?
,等等

下面是一个简单的例子:

# config.ru
run(Proc.new do
  req = Rack::Request.new(env)
  response = <<-RESP
  get? #{req.get?}
  post? #{req.post?}
RESP
  [200, {"Content-Type" => "text/plain"}, [response]]
end)