常见的接口请求类型和@RequestBody、@RequestParam的使用


1. 常见的接口请求类型:


       常见的接口有如下四种类型,分别是含有查询参数的接口,表单类型的接口,json类型的接口以及含有上传文件的接口。

1.1 含有查询参数的

在这里插入图片描述

1.2 表单类型的

在这里插入图片描述

1.3 json 类型的

在这里插入图片描述

1.4 包含上传文件的

在这里插入图片描述


2. @RequestParam、@RequestBody


2.1 @RequestParam

   @RequestParam主要用于将请求参数区域的数据映射到控制层方法的参数上。
   @RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。
   @RequestParam也可用于其它类型的请求,例如:POST、DELETE等请求。

2.2 @RequestBody

       注解@RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据。

       一般情况下后端会有一个参数实体类加上 @RequestBody 注解来接收 application/json 请求类型的数据。如果请求是 application/json 类型,对应的实体类没有加 @RequestBody 注解,就会接不到相关参数。

2.3 案例


(1) post 请求 application/json 类型 body 中的请求体数据和 拼在 url 后面的参数是可以同时存在的:

在这里插入图片描述
在这里插入图片描述

后端接口这样接收数据:

	@PostMapping("updateTableDataDL")
    public AjaxResult updateTableDataDL(@RequestBody List<TableDataParam> dataParamList, String rowGuid) {
    
    
        int result = 0;
        try {
    
    
            result = reportTableService.updateTableDataDL(dataParamList, rowGuid);
        } catch (Exception e) {
    
    
            logger.error(e.getMessage());
        }
        return toAjax(result);
    }


(2)文件上传请求携带表单的其他参数

在这里插入图片描述
后端接口这样接收数据:

	@PostMapping("/add")
    public AjaxResult addcar(TzCar tzCar, HttpServletRequest request) {
    
    
        // 返回此车辆的 rowGuid
        int result = 0;
        try {
    
    
            result = tzCarService.insertTzCar(tzCar, request);
        } catch (Exception e) {
    
    
            logger.error(e.getMessage());
            return AjaxResult.error(e.getMessage());
        }
        return toAjax(result);
    }

  其中 TzCar 就是表单的其他参数封装的参数实体类,两个文件 file1、file2 是在 HttpServletRequest 中接收。具体解析可以看这边多个文件上传+表单数据同时请求的前后端处理
 
暂时到这里、后续再更新

猜你喜欢

转载自blog.csdn.net/zhang33565417/article/details/117715571