是否可以在葡萄路线

时间:2015-10-22 04:55:09

标签: ruby grape grape-api

是否可以在葡萄途径中提供可选的URL参数。

IE中。 对于像:

这样的端点
    get '/user/:name/:location/:id' do
    end

有没有办法在URL中使用或不使用“location”参数来命中此端点。

我尝试使用括号为可选参数定义端点,如下所示:

    get '/user/:name/(:location)/:id' do
    end

但这不起作用

1 个答案:

答案 0 :(得分:0)

我建议您使用location作为查询参数。这样你就可以使它成为可选的,只保留一条路线。

params do
  optional :location, type: String
end

get '/user/:name/:id' do
  if params[:location].present?
    # some code
  else
    # some code
  end
end

此路线将由/user/:name/:id?location={something}与位置匹配,/user/:name/:id与之匹配。