在葡萄的通配路线

时间:2015-06-04 17:54:06

标签: ruby grape

我遇到问题Grape回应纯粹的外卡路线。

我的意思是,如果我有一个简单的路由定义为

get do
...
end

我需要回应对API提出的所有潜在请求。我需要解析路径和参数,然后根据这些值来处理决策树。

我在路线定义上尝试了一些变体,例如:

get '/*' do
...
end

get '/(*)' do
...
end

但无济于事。

我知道Grape中的正则表达式和路由锚定有一些支持,但我没有把它弄清楚。

谢谢!

1 个答案:

答案 0 :(得分:3)

您对语法的猜测很接近,您只需要命名匹配的参数:

E.g。

  get '*thing' do
    { :thing => params[:thing] }
  end

使用*将使param捕获URI路径的其余部分,忽略/个分隔符。但除此之外,它的行为与任何其他参数一样。

请注意,这只会在机架安装点内拾取最多,所以如果你有

  prefix      'api'
  version     'v2'

然后它会响应/api/v2/hkfhqk/fwggw/ewfewg

之类的路径

如果您将此用于自定义404或其他全部捕获路由,则需要在最后添加它,否则它将屏蔽更多特定路由。

相关问题