Spring 数据剩余 POST 请求

Spring data rest POST request

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

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

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

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 左右的代码。

以上URL中的所有ID都是唯一的。以下 2 个不同的测验指的是同一个问题,会导致问题:

/quiz-service/quizzes/1/questions/1 - HTTP OK
/quiz-service/quizzes/2/questions/1 - 根据上述情况会导致 HTTP NOT FOUND。

我们有一个存储库界面,用于所有 3 个测验、问题和答案。

根据 this post 和我们看到的其他人,我们知道您可以 POST 到 /quiz-service/questions 并在测验中包含 link,或者向测验端点添加问题的第二个请求。尽管如此,我们有什么办法可以做到以上几点吗?

提前致谢

Spring Data REST 大量利用超媒体,因此虽然您对 URI 结构有一定的控制权,但您无法(或者应该需要)将其调整为您希望的样子.这里实用的方法是利用公开的 link 关系,并按照 reference documentation.

中记录的方式使用它们

随着超媒体的使用,设计URI方案基本上变得无关紧要了。重要的是资源公开的表示形式,它包含哪些 links 等。Spring Data REST 默认为您提供了很多,所有这些都在文档 linked 到上面描述.