2

Yo API コールバック関数を作成しようとして、グレープと Ruby を試しています。

このように簡単な例を起動して実行できます。. .

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

username次の形式のコールバックを指定して、andxy座標を別の 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
4

1 に答える 1

4

これがRack::Utils の仕組みです。デフォルトのパラメータ セパレータは「&」と「;」です。(HTTP 標準に従って完全に合法です)。したがって、ここではクエリ文字列を自分で解析する必要があります。

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

UPD: ハッシュ キーのタイプミスが修正されました。

于 2014-10-25T16:49:06.430 に答える