【发布时间】:2009-08-03 03:16:08
【问题描述】:
我正在构建一个小工具来帮助人们决定小组活动,例如他们应该去哪家餐厅吃午饭。我的对象是事件、选项和偏好。一个事件有几个选项,用户可以按顺序对发明的选项进行排名。所以一个用户的投票可能是1:选项B,2:选项A,3:选项C。
我的问题是将其映射到 REST 的最佳方法是什么?显然我应该支持事件的 CRUD,与
GET /events/ : list of events
POST /events/ : create a new event
GET /events/1 : get event one
and on options with:
POST /events/1/options : add a new option to the event
(在所有情况下,都必须有经过身份验证的用户)
我感到困惑的是用户如何对活动的选项进行投票。似乎最适合 REST 的是为每个选项做一个 PUT,到 /events/1/options/1/vote,但这似乎很难在投票之间强制执行要求,例如,如果我想强制投票来对选项进行排序,如果我一次获得所有选票,我可以这样做,如 1 B、2 A、3 C,但如果用户将他的选票更改为 1 C、2 B、3 A,应用在这些请求之间将处于无效状态。
我应该将投票打包成一个包,然后在 /events/1/votes 中访问它们吗?
(对于周末项目来说,这似乎是过多的计划,但我的目的是把它做好,因为我没有那么奢侈地编写有报酬的代码。)
【问题讨论】:
标签: rest