浏览 4320 次
锁定老帖子 主题:REST参数问题浅显的思考
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-11
其实这个题目有点不达意,REST根本不会有参数。也正因为这一点,非REST的Web程序遗留下来的思维--url有时需要参数来生成不同视图或资源,有些人认为REST可能办不到或者是需要解决的。其实一个REST架构的程序中这个问题是根本不存在的,绝对不需要考虑的。 如果非要从着非REST的思维来看,“解决”REST“参数”的办法如下: 1.“参数”隐含在URL中 REST把每个Web的东西看成资源,而每个资源都有唯一的标识。也就是说给予不同的URL会标识不同的资源,需要传递的‘参数’就包含在URL之中了。 如:.../form_do.jsp?id=5&flag=modify&type=1(这是以前项目的例子)其中flag代表操作、type代表模型类的类型。在Rails中会表示成为/controller_name/5;edit,Rails中我们用不同的控制器去操作不同的模型,所以这里controller_name就是前面type这个参数。前面的URL参数flag为delete、update、add(new)是一样的道理的。 2.使用POST Rails的REST还没有做到所有的资源都能用URL标识,比如说:搜索。给定的关键词搜索后得到的东西也就是资源,还不能用唯一URL标识。 http://www.iteye.com/topic/70113这里已经描述解决方法了。 在使用REST架构程序时,仔细的设计程序的架构,使用嵌套资源(Nested Resources)也会去掉一些关于“参数”考虑。 我使用REST架构程序时,刚开始还考虑参数传递的的问题,随着学习的深入反而参数的问题消失的无影无踪。使用REST架构程序与大原先方式一样自然。 以上不知妥不妥,欢迎指正。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-11
xvridan 写道: 1.“参数”隐含在URL中
REST把每个Web的东西看成资源,而每个资源都有唯一的标识。也就是说给予不同的URL会标识不同的资源,需要传递的‘参数’就包含在URL之中了。 如:.../form_do.jsp?id=5&flag=modify&type=1(这是以前项目的例子)其中flag代表操作、type代表模型类的类型。在Rails中会表示成为/controller_name/5;edit,Rails中我们用不同的控制器去操作不同的模型,所以这里controller_name就是前面type这个参数。前面的URL参数flag为delete、update、add(new)是一样的道理的。 如果使用ajax的话,就可以用/something/5 方法用put |
|
返回顶楼 | |