Nig*_*gel 6 hateoas ruby-on-rails-3
我从ActiveResource开始,但很快就碰壁了.在覆盖基础模型上的to_json和to_xml时无法使ActiveResource工作.另外,无法使资源表示将链接注入到生成的xml文档中.哦顺便问一下,我正在使用Rails 3.2.1.
我做了一些研究,发现了它的宝石.试过它,由于某种原因不适合我.所以我的问题是:
如果我在一个网站(如http://books.org)中托管了一个资源(比如书),而在另一个网站上托管了另一个资源(比如学生,http://students.org),怎么能我得到的书籍可以让学生以完整的HATEOS荣耀代表自己?
我能够将书籍资源表示为询问学生作为XML文档.我在学生网站上使用vanilla Rails ActiveResource做到了这一点.我创建了继承自的Books资源ActiveResource::Base.然后,我指定的self.site和self.element_name,之后我就能够对远程书网站进行一些基本的ActiveRecord之类的查询.唯一对我有用的是Book.all和Book.find(1).即使这样也不能令人满意,因为该表示包含所有数据库列,我想至少删除其中的一些,结果证明这是不可能的.
现在我已经放弃了这种方法,我想知道在Rails中是否有一个可行的例子,可以构建一个更复杂的资源表示(即书籍),其中包含将驱动应用程序状态转移的链接?我觉得简直令人难以置信的是,这样一个简单的要求似乎在Rails中实现起来非常困难.我所要做的就是创建一个资源的表示,其中包含一些链接,这些链接将指导消费者发现该资源的功能.我最感兴趣的是实现工作流程,这是一种分层的,剥离洋葱类型的会话发现过程.
在 Rails 中,如果您想在 JSON 中执行此操作,则需要更改对象序列化的方式。(您需要重写 Rails 返回资源表示的方式。)最常见的 gem 是: https: //github.com/rails-api/active_model_serializers
如果您不想使用 AMS 或想返回 HTML,请考虑遵循此演示者模式: http://blog.steveklabnik.com/posts/2012-01-06-implementing-hateoas-with-presenters
| 归档时间: |
|
| 查看次数: |
2023 次 |
| 最近记录: |