【发布时间】:2014-10-04 15:45:35
【问题描述】:
考虑config.ru的以下小节:
run Rack::URLMap.new(
"/" => Ramaze,
"/apixxx" => MyGrapeAPI.new
)
这行得通。 (注意xxx 后缀)。发送到/apixxx/* 的每个请求都会发送到 Grape API 端点,其他一切都由 Ramaze 应用程序提供服务。 (Ramaze 是在 Rack 上构建的。)
但是,我真正想要做的是映射/api 而不是/apixxx。但是,Ramaze 应用恰好在/api/v1/* 下有端点。我想要的是让/api 下的每个请求都在/api/v1 下而不是在/api/v1 下去Grape API(例如/api/somethingelse),每个/api/v1/* 请求去Ramaze。
我尝试在 URLMap 中使用正则表达式而不是字符串,但这不起作用。我尝试了 URLMap 和 Rack::Cascade 的组合,但没有成功。
最理想的情况是,如果我可以使用正则表达式进行映射,或者如果我可以使用代码块进行映射,我就会参加比赛。
【问题讨论】: