我正在构建事件管理系统。架构如下所述。 API了解这些关系并将请求结果中的相关资源链接返回。例如,REST - 扩大关系
GET /Events/1
"links": {
"Venue": "/Venues/1",
"Tickets": "/Tickets?event_id=1",
"Teams": "/Teams?event_id=1",
"Registrations": "/Registrations?event_id=1"
}
大部分我读过关于REST和HATEOAS表明,这是“正确”的方式做到这一点但它是非常低效的。例如,如果我想生成参与事件的用户和团队的报告,则需要很多请求。这类似于运行多个select查询,而不是针对数据库运行单个连接查询。所以我的问题是,我应该扩大关系并在资源请求中嵌入相关资源吗?这也会造成问题,因为上面的请求会返回大量的数据。答案可能是坚持关系链接并设置适当的缓存。无论如何,我希望你的意见。
Schema
events
hasMany registrations
hasMany tickets
hasMany teams
team
belongsTo event
ticket
belongsTo event
hasMany registrations
user
hasMany registrations
registrations
belongsTo event
belongsTo ticket
belongsTo user
belongsTo team
谢谢。我无法告诉你我在线阅读了多少指南/教程,从未遇到过这个术语或概念。 – newb1123 2013-04-24 03:49:05
找不到关于这个术语的任何内容...:S Btw。 Tickets,Teams,Registrations应该是具有单个url属性而不是字符串的对象。用这种方式处理它们更容易... – inf3rno 2013-09-05 01:58:44
我从RESTFul食谱中得到它。它基本上是另一种在不使用正常内容协商或具有数千个表示的情况下对“表示”进行微调的方式。它允许您基本上为您想要的表示定义规范。 http://www.amazon.co.uk/RESTful-Services-Cookbook-Subbu-Allamaraju/dp/0596801688/ref=sr_1_1?ie=UTF8&qid=1378368152&sr=8-1&keywords=rest+cookbook – James 2013-09-05 08:03:26