gpt4 book ai didi

java - 如何使用 Spring 设置 RESTful API

转载 作者:可可西里 更新时间:2023-11-01 16:29:26 25 4
gpt4 key购买 nike

我正在尝试使用 Spring 设置一个 RESTful API,在前端使用 React。客户端旨在发​​送一个类似于以下内容的 POST 请求:

{
"previousDecisions": [0, 1, 2]
}

然后服务器会响应一个名为 Node 的对象,它在转换为 JSON 后看起来像这样:

{
"id": 0,
"text": "Something here...",
"decisions": [],
"children": [],
"speaker": 0,
"checkpoint": true
}

我正在努力遵循我看到的一些示例代码,了解如何使用 Spring 进行设置。

后端的设置方式是:

有一个Decide 类、一个Node 类和一个DecideController 类。 DecideController 应该像上面那样接受 POST 请求,然后使用 Decide 类获取 Node 类的实例并将其用作回复客户。

我还没有开始测试客户端,但我正在使用 Intellij Restful API 工具来检查它是否正常工作并且它给我一个错误。这是我处理 POST 请求的实际方法:

@RestController
public class DecideController {

@PostMapping("/decide")
public Node decide(@Valid @RequestBody Decide decide) {
return decide.getNode();
}
}

当我发送带有此正文的请求时,我收到错误响应:

{
"previousDecisions": [0, 1, 2]
}

还有这些 header :

Accept: application/json
Cache-Control: no-cache

这是错误响应:

{"timestamp":"2019-09-01T23:54:58.037+0000","status":500,"error":"Internal Server Error","message":"Content-Type cannot contain wildcard type '*'","path":"/decide"}

我能想到的最后一件你可能需要帮助我的事情是 Decide 类,它很短,所以我也将它包含在这里:

public class Decide {

private int[] decisionList;

public Decide(int[] decisionList) {
this.decisionList = decisionList;
}

public Node getNode() {
//Use the game class to get a root node for the entire story tree
Node rootNode = (new Game()).getFullStoryTree();

//Traverse the story tree using the decisionList to get to the current node
Node currentNode = rootNode;
for (int whichChild : this.decisionList) {
currentNode = currentNode.getChild(whichChild);
}

return currentNode;
}
}

如前所述,我对 POST 请求的期望是这样的响应:

{
"id": 0,
"text": "Something here...",
"decisions": [],
"children": [],
"speaker": 0,
"checkpoint": true
}

抱歉,我对这一切还很陌生,所以希望我在这里所说的一切都有意义,但如果没有,我很乐意澄清或提供更多信息。谢谢!!

最佳答案

错误来自服务器,因为客户端:

"Internal Server Error","message":"Content-Type cannot contain wildcard type '*'"

即使 PAYLOAD 看起来没问题,您的 React 客户端正在设置 Content-Type HTTP header 为“*”。你需要在 React 中解决这个问题。

建议:关注这个link将 Content-Type 设置为 application/json

关于java - 如何使用 Spring 设置 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57750461/

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