gpt4 book ai didi

java - Spring数据休息POST请求

转载 作者:行者123 更新时间:2023-11-30 08:02:12 26 4
gpt4 key购买 nike

我正在使用 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 都是唯一的。以下两个不同的测验涉及同一问题,会导致问题:

/quiz-service/quizzes/1/questions/1 - HTTP 正常
/quiz-service/quizzes/2/questions/1 - 鉴于上述情况,将导致 HTTP NOT FOUND。

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

根据 this post以及我们见过的其他人,我们知道您可以发布到/quiz-service/questions 并包含测验链接,或者向测验端点发出第二个请求以添加问题。尽管如此,我们有什么办法可以做到上述吗?

提前致谢

最佳答案

Spring Data REST 集中利用超媒体,因此虽然您对 URI 结构有一定的控制,但您无法(或者应该有必要)将其调整为您想要的样子。这里实用的方法是利用公开的链接关系并按照 reference documentation 中记录的方式使用它们。 .

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

关于java - Spring数据休息POST请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31726533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com