rails中的RESTFUL URL?

时间:2016-04-27 13:02:46

标签: rest

您好我正在为应用构建REST api,我对URL有要求 这样的网址应该是这样的,例如

www.abc.com/api/param1/value1/param2/value2/param3/value3.... and so on

有案例

案例:参数的数量不受限制,可以频繁更改

如果今天是这样的话

www.abc.com/api/param1/value1/param2/value2/param3/value3

明天它可以是这样的    www.abc.com/api/param1/value1/param2/value2/param3/value3/param4/value4

配置url模式后是否有配置?    一切顺利

并且conrtoller params应该包含这种键值对 { "param1" => "value1","param2" => "value2","param3" => "value3"...and so on }

任何建议!!怎么实现这个?

3 个答案:

答案 0 :(得分:1)

如果你的参数没有修复,你可以在路由中使用通配符

例如

get 'items/list/*specs', controller: 'items', action: 'list'

def list
 specs = params[:specs] # e.g, "base/books/fiction/dickens" #split it and place in a hash
end

答案 1 :(得分:0)

Rails路由提供了一种指定具有静态和动态段的完全自定义路由的方法,如Rails Routing Guide中所述。

您的要求应该可以通过

实现
get '/api/param1/:param1/param2/:param2/...', to: 'controller#action'

答案 2 :(得分:0)

您可以使用route scoping来解决此类问题。换句话说,它是nested routes

更多详情:http://guides.rubyonrails.org/routing.html#nested-resources

这是一个例子,

GET /magazines/:magazine_id/ads/:id/edit ads#edit
return an HTML form for editing an ad belonging to a specific magazine

我认为这会对你有所帮助。