如何使用Ruby Grape从get请求中提取数据



我正在尝试通过制作Yo API回调函数来尝试使用葡萄和Ruby。

我可以得到简单的例子,并运行这样。

resource :loc do
    get ':loc' do        
        params.to_yaml
    end
end

如果有以下格式的回调,我该如何将usernamexy坐标提取到单独的ruby变量中?

http://yourcallbackurl.com/yourendpoint?username=THEYOER&location=42.360091;-71.094159

当位置数据搞砸了。

--- !ruby/hash:Hashie::Mash
username: sfsdfsdf
location: '42.360091'
"-71.094159": 
route_info: !ruby/object:Grape::Route
  options:
    :prefix: 
    :version: v1
    :namespace: "/loc"
    :method: GET
    :path: "/:version/loc/:loc(.:format)"
    :params:
      loc: ''
    :compiled: !ruby/regexp /A/(?<version>v1)/loc/(?<loc>[^/.?]+)(?:.(?<format>[^/.?]+))?Z/
version: v1
loc: toto
format: txt

Rack::Utils就是这样工作的。默认的params分隔符是"&"one_answers";"(根据HTTP标准,这是完全合法的)。所以您必须在这里自己解析查询字符串。

location = Rack::Utils.parse_nested_query(env['QUERY_STRING'], '&')['location']
coordinates = location.split(';')

UPD:已修复哈希键的拼写错误。

相关内容

  • 没有找到相关文章

最新更新