子资源可以在REST中更改其“父”资源吗?

时间:2013-12-24 13:21:53

标签: java rest java-ee

如果我对/ quizzes / 1 / answer / final进行POST,我希望将答案保存在服务器上,但我还想在测验资源上设置提交日期以及更新测验的状态完成。我可以在POST到提到的URI时执行此操作,还是应该在更新测验资源时执行其他请求?

由于我希望工作流程在服务器上,我不希望客户端做很多事情,但我不知道在发布答案时是否更改其他资源是对的?

我应该从这个帖子回复什么?

我是否应该回答答案,并且20x,303指向答案,303指向测验等?

1 个答案:

答案 0 :(得分:1)

最终,服务器上的状态转换和响应资源取决于您和您的要求。 REST只是一个指南。

我个人同意,如果测验资源的状态应该通过特定操作改变,我会这样做,因为您随后保存了RTT和客户端复杂性。

编辑添加:同样在编写任何服务时,我首先假设客户端会欺骗我。如果客户负责提交答案,然后适当更新测验,阻止客户提交答案,然后将测验时间设置为30年或thousand years in the future

就POST的成功回复而言,我认为这将取决于客户端下一步应做什么。如果他们可能想要任何一个方向,一个选项可能是200提交的答案(当前uri的资源,作为确认),以及到答案的规范链接和整个测验的链接。我倾向于200,因为它清楚地表明成功,但这是一个意见,再次你的目标客户将如何表现。 (它是浏览器还是程序客户端或两者兼而有之?这可能会影响您的决定)