RESTful&Rails学习笔记(二)
REST风格web编程和传统web编程最大的不同就是HTTP方法的使用(这不是废话吗?地球人都知道啦)。
在rails里,资源对应到controller,就是说一个资源对应一个controller(心里YY一下:这样controller的数量岂不是会暴增?),如果你把资源都划分好的话,controller就只有index(GET),new(GET),edit(GET),create(POST),show(GET),update(PUT),destrory(DELETE)七个方法。
关键就在于资源的划分和命名(URI),就拿用户注册,登陆来说,用户是一个资源,注意了,用户登陆系统,也是一个资源,我把它称之为登陆状态,尽量用名词来表示资源,不管资源是一个对象还是一种动作,因为这涉及到Rails的资源URL生成规则。拿面向对象设计来举例子,一个对象可以是一个资源,但一个操作也可以是一个资源,这就是最重要的区别。比如:
- 传统的登陆,可能是这样的/users/login,对应UsersController#login方法,一般都是使用HTTP POST提交到服务器
- RESTful登陆,/login_states,对应LoginStates#create,同样是用HTTP POST方法,为什么对应create方法呢?我认为用户登陆将是新增一个用户的登陆状态,当然注销就是销毁一个用户登陆状态。
- 传统的注销,/users/logout,对应UsersController#logout,一般用的是HTTP GET方法
- RESTful注销,/login_states,使用HTTP DELETE方法提交,对应LoginStates#destrory方法
区别甚大。
简单讲就是:对象是资源,操作也是资源。
对于资源的命名,应该尽量使用名词来命名资源,比如上面的登陆应该叫做LoginStates(登陆状态),而不是叫做Login(登陆),为什么呢?因为Rails会自动生成一个资源URL的辅助方法,其中有些要特别注意的地方:
- login_states_path -> /login_states 如果是HTTP GET,对应index方法;如果是POST方法则对应create方法
- login_state_path(:id) -> /login_states/:id
请注意上面两个方法的区别 1 比 2 多了一个"s",因为Rails认为所有的资源,都是列表(list)和列表中的项(item),没有第三种了,所以Rails默认的资源辅助方法的生成跟它的这种约定有很大的关系,尽量使用名词命名资源将会减少你的麻烦。
(请参考RESTful Web Service 中文版 173页,有很详细的说明)
分享到:
相关推荐
RESTful-Rails-开发 RESTful Rails 开发库。 你好 Rails 类别图 API - WIKICAT 本地图片 带有地理标记的维基百科文章 - WIKIPINS 城市步道API 余烬漫步
应用Rails进行REST 开发 ,翻译自《RESTful Rails Development》
thinkphp6 RESTful API开发 开发过程记录笔记 https://blog.csdn.net/weixin_41120504/article/details/115638094
RestFul_Rails_Dev_v_0.1 RestFul_Rails_Dev_v_0.1
RESTful.Rails.Development.2015.10.pdf
什么是REST,符合REST的API叫RESTful 两种SOA接口实现:SOAP(WebService) vs REST
How to RESTful rails
如果要构建公共API,则可能要启用跨域资源共享(CORS),以使跨域AJAX请求成为可能。 rack-cors宝石使这一过程变得非常简单。 只需将其粘贴在您的Gemfile中,如下所示: gem 'rack-cors' 然后在Rails应用程序的...
Presentation on advanced restful rails application
使用ROR进行REST风格的网络应用开发的教程。
Qt+Cutelyst学习笔记(二十七)win10+Qt5.15.2+qmake实现一个简单的RESTful服务器 示例源码 https://blog.csdn.net/aggs1990/article/details/124115368 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下
RESTful-铁路发展 示例代码取自Silvia Puglisi的《 》一书。 随着本书教程的进展,成功时我会更新每章的结果。 安装 $ git clone https://github.com/kgish/restful-rails-developmet.git book-rails4 $ cd book-...
restful_query 描述: RestfulQuery提供了一个RESTful接口,可轻松安全地查询ActiveRecord数据。用法: Rails / ActiveRecord: # as a gem, in environment.rbconfig . gem 'restful_query'或安装插件。 在您的模型...
用于嵌套链接资源的RESTful API解析器| :spider_web: :spider: RestQL允许您动态解析RESTful API的嵌套链接资源。 通过指定一组属性来描述路径。 安装 npm npm install restql --save 纱 yarn add restql CDN &...
一个准系统、无状态、RESTFUL Rails JSON API 服务器,遵循当前的最佳实践,专注于安全性。 细节 使用 Rails 的内置进行身份验证,使其最小化、记录良好且易于升级 无状态 JSON API - 没有不安全的会话或 cookie,...
+restful学习教程
在返本技术手册中,我们将为您提供一些RESTful资源和技巧。 REST 在过去10年里,应用朋务器已绊找到了舒适的位置,但是Web应用朋务器现在通常大都剥离为若干个基本元素了。轻载的Web应用框架是今日的基础设施常见...
本书包括以下内容: ·强调Web基础技术的力量 —— HTTP应用协议、URI命名标准与XML标记语言 ·介绍面向资源的架构(ROA),设计RESTful Web Services的常识规则集合 ·揭示RESTful的设计如何比远程过程调用(RPC)...
用于将RESTful超媒体API添加到您的应用程序的Rails框架。 宝石名称已更改! 我们从版本2.0.0重命名了宝石名称the_garage 。 请更新您的Gemfile。 它是什么? Garage使用其本机RESTful路由为您的Rails应用程序提供...
这是一片简单的关于restful学习内容,本人零基础,通过百度学习后总结的,希望可以对浏览的同学有所帮助。