我正在学习 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);
}
它真的像我上面描述的那样工作吗 - 我将发送一些包含所有必需字段的请求,然后从客户端/另一端/等处获得包含所有填充字段的响应?
是的,如果您在控制器方法中返回 ResponseEntity 对象,那么客户端将收到带有您指定标头的 HTTP 响应。另外,您不需要在 ResponseEntity.ok() 内传递服务方法。这可能会给客户带来令人困惑的反应。相反,只需将结果返回到控制器方法或根据您的服务方法是否成功返回 ResponseEntity.ok() 。