我很难让葡萄回复一条纯粹的外卡路线。
我的意思是,如果我有一个简单的路线定义为
get do
...
end我需要响应所有对API的潜在请求。在这种情况下,我需要解析路径和参数,然后根据这些值处理决策树。
我尝试了一些路线定义的变体,例如:
get '/*' do
...
end
get '/(*)' do
...
end但没有结果。
我知道Grape中有一些正则表达式和路由锚定的支持,但是我还没有找到它。
谢谢!
发布于 2015-06-04 19:28:07
您对语法的猜测非常接近,只需给匹配的param命名:
例如。
get '*thing' do
{ :thing => params[:thing] }
end使用*将使param捕获URI路径的其余部分,而忽略/分隔符。但否则,它的行为就像任何其他的param。
注意,这最多只能在Rack挂载点内拾取,所以如果您有
prefix 'api'
version 'v2'然后它将响应像/api/v2/hkfhqk/fwggw/ewfewg这样的路径。
如果您将它用于自定义404或其他所有捕获路由,那么您需要在最后添加它,否则它将屏蔽更多特定的路由。
https://stackoverflow.com/questions/30650832
复制相似问题