目录
1.增加 用到注解
1.1@RequestBody注解解析:
2.查询方法当中参数不用注解!
3.起售停售用到注解
3.1@PathVariable解析
4.删除菜品注解
4.1@RequestParam
5.修改用到的注解
5.1修改分两步 用到两个注解
6:总结
@RequestBody
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
/**
* 新增菜品
*
* @param dishDTO
* @return
*/
@ApiOperation("新增菜品")
@PostMapping
public Result add(@RequestBody DishDTO dishDTO) {
log.info("新增菜品,{}", dishDTO);
dishService.add(dishDTO);
//构建一个key
String key="dish_"+dishDTO.getCategoryId();
//清除缓存
redisTemplate.delete(key);
return Result.success();
}
/**
* 分页查询菜品
*
* @param dishPageQueryDTO
* @return
*/
@ApiOperation("分页查询菜品")
@GetMapping("/page")
public Result page(DishPageQueryDTO dishPageQueryDTO) {
PageResult pageResult = dishService.page(dishPageQueryDTO);
return Result.success(pageResult);
}
@PathVariable
@PathVariable 注解的作用是帮助我们从 URL 中提取路径变量,并将其绑定到方法的参数上。通过使用 @PathVariable 注解,可以更方便地处理 restful 风格的请求,提取路径变量的值,实 url 映射,设计符合 restful API 规范的接口,并简化参数传递的过程。
/**
*菜品起售停售
* @param status
* @param id
* @return
*/
@PostMapping("/status/{status}")
@ApiOperation("菜品起售停售")
public Result startOrStop(@PathVariable Integer status,Long id){
dishService.startOrStop(status,id);
//清除所有缓存
Set keys = redisTemplate.keys("dish_*");
redisTemplate.delete(keys);
return Result.success();
}
@RequestParam
加@RequestParam注解:url必须带有参数
/**
* 删除菜品
*
* @param ids
* @return
*/
@DeleteMapping
@ApiOperation("删除菜品")
public Result deleteBatch(@RequestParam List ids) {
log.info("删除菜品:{}", ids);
dishService.deleteBatch(ids);
//清除所有缓存
Set keys = redisTemplate.keys("dish_*");
redisTemplate.delete(keys);
return Result.success();
}
@PathVariable
@RequestBody
修改分两步 :
第一步:先查询id 用到@PathVariable注解 起售停售当中用到注解
第二部 :在进行修改 用到@RequestBody注解 也就是增加当中用到注解
/**
* 根据id查询菜品相关信息
*
* @param id
* @return
*/
@ApiOperation("根据id查询菜品相关信息")
@GetMapping("/{id}")
public Result getById(@PathVariable Long id) {
DishVO dishVO = dishService.getById(id);
return Result.success(dishVO);
}
/**
* 修改菜品
* @param dishDTO
* @return
*/
@ApiOperation("修改菜品")
@PutMapping
public Result update(@RequestBody DishDTO dishDTO){
log.info("修改菜品参数:{}",dishDTO);
dishService.update(dishDTO);
//
// //清除所有缓存
// Set keys = redisTemplate.keys("dish_*");
// redisTemplate.delete(keys);
return Result.success();
}
增删改查 当中 查询不需要注解
增加用到 @RequestBody(JSON 格式数据使用 @RequestBody)
删除用到 @RequestParam(请求参数 是key=value)
修改用到 @PathVariable (路径传参)跟 @RequestBody
另外设计该模块接口中 有时会有 起售停售功能 这种会涉及到@PathVariable