Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新资源上与时间相关的数据的RESTful方法_Rest_Grails - Fatal编程技术网

更新资源上与时间相关的数据的RESTful方法

更新资源上与时间相关的数据的RESTful方法,rest,grails,Rest,Grails,因此,我有以下资源(表示为Grails域类): 现在,我正在尝试创建一种RESTful方法,通过WorkRecord登录或注销工作。我想的是打电话给 PUT /workrecords/2 发送类似(JSON请求)的内容 看起来不太舒服。我该怎么做呢?/workrecords/2/login和/workrecords/2/logout放在这些URI上,让服务器分配日期,但接受正文中的其他信息(用户等)。考虑到登录和注销不是资源/文档,这不是很RESTful吗,但是行动呢?我不打算去争论它是否是安

因此,我有以下资源(表示为Grails域类):

现在,我正在尝试创建一种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' ...}