restful风格接口
推荐在前后端分离项目中使用restful风格api
@RestController @RequestMapping("employees") public class EmployeeController { /** * 2个接口设计都是用相同资源(uri),相同请求方法,此时 SpringMVC 无法识别, * 认为是同一方法,报错:Ambiguous mapping. [模糊映射] * * RESTful 解决方案:使用 参数路径 方式 * 具体实现:将参数作为请求映射路径一部分,[参与映射路径区分] * 比如:查询指定 id 的员工信息接口设计 * @RequestMapping(value = "/employees/{id}", method = RequestMethod.GET) * 其中 "/employees/{id}" 参数路径,{id} 就是路径参数 * * 访问该接口时:http:localhost:8080/employees/1 其中 1 是 id 参数 * 接口接收路径参数:使用 @PathVariable,表示将参数路径上的参数解析,并赋值给指定变量 * 如果路径参数与变量名不一致,使用 @PathVariable("eid")明确指定 * */ // 查询所有 @GetMapping public List<Employee> list() { return Arrays.asList(new Employee(1L,"森", 10), new Employee(2L, "小野", 11)); } // 查询单个 @GetMapping("/{eid}") public Employee queryById(@PathVariable("eid") Long id) { System.out.println("查询单个 = " + id); return new Employee(3L, "吉田", 8); } // 添加 @PostMapping public Employee add(@ModelAttribute("employee") Employee employee) { System.out.println("添加 = " + employee.getId()); return employee; } // 修改 @PutMapping public Employee update(@ModelAttribute("employee") Employee employee) { System.out.println("修改 = " + employee.getId()); employee.setId(employee.getId()); employee.setName(employee.getName()); employee.setAge(employee.getAge()); return employee; } // 删除 @DeleteMapping("/{id}") public String delete(@PathVariable Long id) { System.out.println("删除 = " + id); if (id != null && 1 == id) { return "删除成功"; } return "删除失败"; } }
本文来自博客园,作者:喵酱爱吃鱼,转载请注明原文链接:https://www.cnblogs.com/zhangyuanmingboke/p/16918849.html