/*** 获取某一个员工,多参数* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--id,name,age* 4. 请求响应--一个员工--Employee--json*/
@RequestMapping(value = "/employees/{id}/{name}/{age}", method = RequestMethod.GET)
@ResponseBody
public Employee moreArgsOneList(@PathVariable Long id,@PathVariable String name, @PathVariable int age){return new Employee(id, name, age);
}
postman 显示
@PathVariable Long id,@PathVariable String name, @PathVariable int age
也可以换成
Employee employee 对象的方式,也是可以成功传递参数的。
参数路径 优缺点
优点:一定程度上隐藏参数
缺点:如果参数较多,url比较长,不优雅
开发时一般时2者混用
我们用的时Spring boot 版本的MVC ,spring boot 已经为我们自动装配。
如果是原生MVC的就需要加过滤器
package org.chad.controller;import org.chad.domain.Employee;
import org.chad.util.JsonResult;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;import java.util.Arrays;
import java.util.List;/*** 员工的对外接口声明类* 员工的控制层/表现层*/
@RestController //@Controller + @ResponseBody
@RequestMapping("employees")
public class EmployeeController {/*** 获取所有员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--无* 4. 请求响应--多个员工--List--json*/@GetMapping//@RequestMapping( method = RequestMethod.GET)public List list(){//查询MySQL数据库得到员工列表信息//假装查询数据库List list = Arrays.asList(new Employee(1L, "大王", 18),new Employee(2L, "小李", 19),new Employee(3L, "小查", 20));return list;}/*** 增加一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--POST* 3. 请求参数--Employee* 4. 请求响应--Employee--json*/@PostMapping//@RequestMapping(method = RequestMethod.POST)public Employee add(Employee employee){//假设添加员工employee.setId(1L);return employee;}/*** 更新一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--PUT* 3. 请求参数--id,name,age* 4. 请求响应--Employee--json*/@PutMapping//@RequestMapping( method = RequestMethod.PUT)public Employee update(Employee employee){//假设添加员工employee.setName(employee.getName() + "_update");return employee;}/*** 删除一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--DELETE* 3. 请求参数--id* 4. 请求响应--删除之后的状态--jsonResult--json** jsonResult:统一的响应返回值** {* code:200,* msg:"操作成功”,* data:null* }*/@DeleteMapping //@RequestMapping(method = RequestMethod.DELETE)public JsonResult delete(Long id){return JsonResult.success();}/*** 获取某一个员工* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--id* 4. 请求响应--一个员工--Employee--json*/@GetMapping("/{id}") //@RequestMapping(value = "/{id}", method = RequestMethod.GET)public Employee oneList(@PathVariable Long id){return new Employee(id, "张三", 18);}/*** 获取某一个员工,多参数* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--id,name,age* 4. 请求响应--一个员工--Employee--json*/@GetMapping("/{id}/{name}/{age}") //@RequestMapping(value = "/{id}/{name}/{age}", method = RequestMethod.GET)public Employee moreArgsOneList(@PathVariable Long id,@PathVariable String name, @PathVariable int age){return new Employee(id, name, age);}
}
做了三件事情
1.路径简化
2.@RestCotroller 代替 @Cotroller + @ResponseBody
3.@GetMapping 代替了 @RequestMapping(method = RequestMethod.GET)