在 REST 中的 POST 中,客户端通常如何写入响应?

问题描述 投票:0回答:1

我正在学习 REST,无法找到一件简单事情的解释。例如,当我们在服务中编写一些方法时,例如

@Override
public List<Response> createRequest(List<Request> requests) {
    List<Object[]> listOfUUIDsAndPermissions = signingInitiationRepository.findStorageUUIDAndPermission(); //we get from database three parameters to set it to our request to send it to some other side 

    return IntStream.range(0, Math.min(listOfUUIDsAndPermissions.size(), requests.size()))
            .mapToObj(i -> {
                Object[] arr = listOfUUIDsAndPermissions.get(i);
                Request request = requests.get(i);
                request.setStorageUUID(UUID.fromString((String) arr[0]));
                request.setPermissions(new String[]{(String) arr[1]});
                request.setServiceTo(ift);

                return new Response();
            })
            .toList();
}

我们不需要在 Response 中设置某些字段,因为我们假设所有必要的信息都会从另一方发送给我们。

只退货可以吗

return new Response();

我想写一些简单的控制器,比如

@PostMapping("/testlink")
public ResponseEntity<List<Response>> createRequest(@RequestBody List<Request> requests) {
    var result = myservice.createRequest();
    return ResponseEntity.ok(result);
}

它真的像我上面描述的那样工作吗 - 我将发送一些包含所有必需字段的请求,然后从客户端/另一端/等处获得包含所有填充字段的响应?

java rest post spring-restcontroller
1个回答
0
投票

是的,如果您在控制器方法中返回 ResponseEntity 对象,那么客户端将收到带有您指定标头的 HTTP 响应。另外,您不需要在 ResponseEntity.ok() 内传递服务方法。这可能会给客户带来令人困惑的反应。相反,只需将结果返回到控制器方法或根据您的服务方法是否成功返回 ResponseEntity.ok() 。

© www.soinside.com 2019 - 2024. All rights reserved.