gpt4 book ai didi

java - REST - 使用 Spring MVC 返回创建的对象

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:49 25 4
gpt4 key购买 nike

我有一个接受 JSON 对象的 REST 调用,比方说,一个人。创建此对象(经过验证并保存到数据库中)后,我需要返回新创建的 JSON 对象。

我认为标准做法是返回 201 Accepted 而不是立即返回对象。但是我的应用程序立即需要新创建的对象。

我有一个接受 POST 调用的 Controller 方法,调用一个服务类,后者又调用一个使用 Hibernate 来创建对象的 DAO。将其保存到数据库后,我将调用另一个 Controller 方法,该方法获取人的 ID 并返回对象。

我的问题是,这是更好的方法吗?即,调用另一个 Controller 方法来获取新创建的对象。或者 POST 调用本身应该返回对象。

主要问题是:调用另一种方法需要往返,我想这是一种矫枉过正。 (服务->DAO->Hibernate->数据库)。相反,我认为我应该在同一调用(从处理 POST 的方法)中保存对象后立即从数据库中获取对象。

这里的架构标准是什么?

最佳答案

尝试使用 ResponseEntity 返回 HTTP 状态以及您需要的对象。

示例代码是(这是我返回客户对象的代码,根据您的需要更改它):

// imports (for your reference)
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

// spring controller method
@RequestMapping(value = "getcust/{custid}", method = RequestMethod.GET, produces={"application/json"})
public ResponseEntity<Customer> getToken(@PathVariable("custid") final String custid, HttpServletRequest request) {

customer = service.getCustById(custid);

return new ResponseEntity<Customer>(customer, HttpStatus.OK);
}

阅读此 documentation了解更多。那里提供了一些示例代码。

关于java - REST - 使用 Spring MVC 返回创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127454/

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