Spring Boot患者管理API如何通过疾病路径参数查询对应患者姓名
功能实现修改方案
现有代码问题梳理
- 控制器层使用了
@PostMapping注解,浏览器直接输入URL访问属于GET请求,无法匹配 - 控制器方法没有获取路径中的
illness参数,返回值为void不符合返回姓名列表的需求 - 服务层方法逻辑错误,直接拿Patient对象和疾病名称字符串比较,且没有收集匹配到的患者姓名返回
修改后的代码
1. 服务层(PatientService)修改
替换原有patientIllness方法即可:
// 根据疾病名称查询匹配的患者姓名列表 public List<String> patientIllness(String illness) { List<String> matchNames = new ArrayList<>(); for (Patient patient : patientList) { // 若需要忽略大小写可改为illness.equalsIgnoreCase(patient.getIllness()) if (illness.equals(patient.getIllness())) { matchNames.add(patient.getName()); } } return matchNames; }
2. 控制层(PatientController)修改
替换原有标注HELP的方法即可:
// 根据疾病名称获取所有患病人员姓名 @GetMapping("api/v1/{illness}") public List<String> patientIllness(@PathVariable("illness") String illness) { return patService.patientIllness(illness); }
验证方式
启动项目后,在浏览器输入http://localhost:8080/api/v1/你要查询的疾病名称,即可返回所有患该疾病的人员姓名列表。
内容的提问来源于stack exchange,提问作者user16952888
相关产品推荐
相关产品推荐

