[英]Get Method status Issue
我正在测试 API。 在其中我使用 GET 方法来检查响应。 我使用 ID 执行搜索。我输入无效值就像我搜索 ID=30 但没有 ID=30 的记录但它仍然会显示 200 状态。 但它应该向我们展示 204 状态。 是错还是对,或者如果没有数据,为什么他们会显示 200 状态?
HTTP 200 OK 成功状态响应码表示请求成功。
在将响应发送回客户端之前,您必须检查空数据并设置HttpStatus.NO_CONTENT (204)
,否则默认情况下将显示HttpStatus.OK (200)
。
示例:如果您尝试使用 id 30 进行搜索,它将获取 id 为 30 且状态为200 Ok
的员工,如果您尝试使用其他 id(不在列表中)进行搜索,它将不会为您提供状态为204 No Content
的数据204 No Content
@RequestMapping("/employee/{id}")
public ResponseEntity<Employee> getEmployeeById(@PathVariable("id") int id){
//HardCoded Data
List<Employee> list = new ArrayList<>();
list.add(new Employee(10,"a"));
list.add(new Employee(20,"b"));
list.add(new Employee(30,"c"));
Optional<Employee> optional = list.stream().filter(x -> x.getId() == id).findFirst();
Employee employee = null;
if(optional.isPresent()){
employee = optional.get();
}
return new ResponseEntity<>(employee, employee==null ? HttpStatus.NO_CONTENT : HttpStatus.OK);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.