Spring数据休息POST请求

时间:2015-07-30 14:28:11

标签: java spring rest spring-data

我正在使用具有以下结构的Spring Data Rest进行测验系统:

1测验包含许多问题
1问题包含许多答案

我们想用以下网址结构来表示:

GET / quiz-service / quizzes / 1 / questions / 1 / answers - 在测验1中获取属于问题1的所有答案。
POST / quiz-service / quizzes / 1 / questions / 1 / answers - 在测验1中添加问题1的答案。
POST / quiz-service / quizzes / 1 / questions - 向测验1添加问题。

目前,当我们尝试POST以上内容时,我们会得到一个HTTP 40-something代码。

上述网址中的所有ID都是唯一的。以下两个不同的测验引用同一个问题会导致问题:

/ quiz-service / quizzes / 1 / questions / 1 - 将是HTTP OK
/ quiz-service / quizzes / 2 / questions / 1 - 在上面给出了HTTP NOT FOUND的结果。

我们有3个测验,问题和答案的存储库界面。

根据this post以及我们看过的其他人,我们知道您可以发布到/ quiz-service / questions并提供测验链接,或者向测验终点发出第二个请求题。尽管如此,我们还能做些什么吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

Spring Data REST充分利用超媒体,因此当您对URI结构有一定的控制权时,您无法(或者根本不需要)将其调整为您想要的样子。这里务实的方法是利用公开的链接关系,并按照reference documentation中的说明使用它们。

使用超媒体,设计URI方案基本上变得无关紧要。重要的是资源公开的表示,它包含的链接等等。春天数据REST默认为您提供了很多,所有这些都在上面链接的文档中描述。