Controller的部分注解

目录

1.增加  用到注解   

1.1@RequestBody注解解析:

2.查询方法当中参数不用注解!

3.起售停售用到注解

3.1@PathVariable解析

4.删除菜品注解

4.1@RequestParam

5.修改用到的注解

5.1修改分两步 用到两个注解

6:总结


1.增加  用到注解   

@RequestBody

1.1@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();
    }

2.查询方法当中参数不用注解!

 /**
     * 分页查询菜品
     *
     * @param dishPageQueryDTO
     * @return
     */
    @ApiOperation("分页查询菜品")
    @GetMapping("/page")
    public Result page(DishPageQueryDTO dishPageQueryDTO) {
        PageResult pageResult = dishService.page(dishPageQueryDTO);
        return Result.success(pageResult);
    }

3.起售停售用到注解

@PathVariable

3.1@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();
    }

4.删除菜品注解

@RequestParam

4.1@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();
    }

5.修改用到的注解

@PathVariable

@RequestBody

5.1修改分两步 用到两个注解

修改分两步 :

第一步:先查询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();
    }

6:总结

增删改查   当中 查询不需要注解

增加用到  @RequestBody(JSON 格式数据使用 @RequestBody)

删除用到 @RequestParam(请求参数 是key=value)

修改用到 @PathVariable (路径传参)跟 @RequestBody

另外设计该模块接口中  有时会有 起售停售功能  这种会涉及到@PathVariable