使用REST处理基于日历的数据

使用REST处理基于日历的数据,rest,ember.js,ember-data,django-rest-framework,restful-architecture,Rest,Ember.js,Ember Data,Django Rest Framework,Restful Architecture,我有以下数据模型- "Room": "id": 1 "name": "Deluxe" "description": "A big room" ... "Inventory": "room_id" : 1 "date" : "27/04/2015" "availability" : 10 //Given a date the number of rooms available UI的用例如下所示: 要一个房间- 设置一天的可用性 一

我有以下数据模型-

"Room":
   "id": 1
   "name": "Deluxe"
   "description": "A big room"
    ...


"Inventory":
     "room_id" : 1
     "date"  :  "27/04/2015"
     "availability" : 10 //Given a date the number of rooms available
UI的用例如下所示: 要一个房间-

设置一天的可用性 一次设置多天的可用性 -通过一次性从日历中选择日期

去主键/唯一键,我可以考虑一天的库存作为资源,并发布多个POST / PUT调用的每一天。但发出多个请求可能有点过头了

我们在客户端使用Ember数据REST适配器,在服务器端使用Django REST框架

是否有任何建议的休息模式来处理这种基于时间/日期的数据

提前感谢。

库存作为可编辑资源的概念在这里似乎有点反模式。我认为库存在逻辑上是由一个或多个预订资源的存在决定的,这意味着库存是不可变的,因为它在逻辑上应该是不变的,并且只存在,所以您不必从客户端提取所有不应该被允许的预订,并从那里确定可用性


因此,我的建议是创建一个预订模型,该模型具有room_id、start_date和end_date,任何GET库存请求都只返回请求日期范围的可用性。这完全消除了多次更新的需要。

不幸的是,我们无法从预订数量中获得可用性-用户可以自由将可用性设置为任意数量。为了更好地解释用例,我添加了一个mock。在这种情况下,我可以建议的唯一约定是JSON补丁或创建一个能够有效处理用例的自定义批处理端点。有些人对JSON补丁RFC避而远之,因为他们认为它不合适,而且与只发出多个请求相比,额外的复杂性不足以保证它的使用。。。。但我相信你能形成自己的观点。