繁体   English   中英

获取方法状态问题

[英]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);
  }

带有状态码的 API 请求

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM