更新资源上与时间相关的数据的RESTful方法
因此,我有以下资源(表示为Grails域类): 现在,我正在尝试创建一种RESTful方法,通过更新资源上与时间相关的数据的RESTful方法,rest,grails,Rest,Grails,因此,我有以下资源(表示为Grails域类): 现在,我正在尝试创建一种RESTful方法,通过WorkRecord登录或注销工作。我想的是打电话给 PUT /workrecords/2 发送类似(JSON请求)的内容 看起来不太舒服。我该怎么做呢?/workrecords/2/login和/workrecords/2/logout放在这些URI上,让服务器分配日期,但接受正文中的其他信息(用户等)。考虑到登录和注销不是资源/文档,这不是很RESTful吗,但是行动呢?我不打算去争论它是否是安
WorkRecord
登录或注销工作。我想的是打电话给
PUT /workrecords/2
发送类似(JSON请求)的内容
看起来不太舒服。我该怎么做呢?/workrecords/2/login和/workrecords/2/logout放在这些URI上,让服务器分配日期,但接受正文中的其他信息(用户等)。考虑到登录和注销不是资源/文档,这不是很RESTful吗,但是行动呢?我不打算去争论它是否是安静的,因为这是一个滑动的比例,每个极端都有利弊。我的建议解决了你的担忧,而且足够平静。例如,用于登录/注销的资源(我假设该资源具有其他相关信息),因为它属于工作记录。是的,这些是动作,但是你所放置的数据/模型/表示/资源实际上是一种资源。我会考虑将登录和注销建模为资源。这既能解决你对宁静的担忧,又能给你很大的灵活性。在任何情况下,PUT都依赖于来自客户端的数据是否正确。如果您需要服务器控制数据,您需要一篇文章。@EricStein关于PUT vs POST的观点非常好。
PUT /workrecords/2
{... logInTime: <date> ...}
{... action: 'logIn' ...}