基于 Rails 的 RESTful 服务开发与使用
1. REST 开发中的数据与认证问题
在开发过程中,若直接在数据库中更新或删除用户记录,而不更新会话,会话会持续使用陈旧数据。更好的做法是存储不会改变的记录标识符,并在需要时访问该记录,例如使用 Task.find_by_user_id(session[:user_id]) 代码。
当使用会话时,上述代码能较好地工作。而在开发使用 Web 服务的应用程序时,HTTP 基本认证更为便捷,它比通过自定义登录表单并携带会话 cookie 更易用。
为了同时支持这两种认证方式,可在控制器中添加一个过滤器,该过滤器能使用 HTTP 基本认证或会话来识别用户,并将用户标识符存储在 @user_id 实例变量中。
2. 资源映射与嵌套资源
资源映射在 CRUD 操作中十分方便,我们还可以进一步探索嵌套资源,如 /books/598/chapters/5 。使用 to_param 方法能创建更友好的 URL,例如 /books/598-ruby-in-practice/chapters/5-web-services 。同时,一些表单辅助方法能根据 ActiveRecord 对象生成合适的表单,并使用最合适的资源 URL。
以下是资源映射的一些要点总结:
| 操作 | 描述 |
| ---- | ---- |
| 嵌套资源 | 如 /books/598/chapters/5
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



