Restful请求注解使用总结(转)

接收方法中的注解常见注解:

@PathVariable(路径变量)注解的使用
占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义。
@PathVariable(“xxx”)
通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“)
@RequestMapping(value=”user/{id}/{name}”)
请求路径:http://localhost:8080/hello/show5/1/james

@RequestParam:
@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。

defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

@RequestBody

@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。@RequestBody接受的是一个json格式的字符串,一定是一个字符串。

GET、POST方式提时, 根据request header Content-Type的值来判断:

① application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理)
②multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据)
③ 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据必须使用@RequestBody来处理);

PUT方式提交时, 根据request header Content-Type的值来判断:

application/x-www-form-urlencoded, 必须;
multipart/form-data, 不能处理;
其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;

注意:

前端的请求头中的Content-Type设置的是json格式的,而json格式需要对应post请求的接口参数需要对应是@RequestBody;

如果想使用RequestParam,那么则需要前端的Content-Type要设置成application/x-www-form-urlencoded类型。

@PostMapping 更新或者查询请求

前端请求示例:

export function getTreeAll (id) {
  return request({
    url: '/api/sys/dept/tree/gettreeall',
    method: 'post',
    params: {
      id
    }
  })
}

 

后端接收示例:

@PostMapping("gettreeall")
	@ApiOperation("取所有机构节点")
	public Result<List<SysDeptDTO>> getDeptTreeAll(String rootId) {
		
	}

 

加一种后台接收单个参数情况:
在这里插入图片描述
对应后台代码:public Result check(@RequestBody String id)

也可以使用@RequestBody进行接收 text和json都能接收

@PutMapping 更新请求

前端请求示例:

export function setDeptRoleDefault (id) {
  return request({
    url: '/sys/sys_role_v2/dept_default_role/' + id+'/'+"第二个参数",
    method: 'put'
  })
}

 

后端接收示例:

@PutMapping("commom_default_role/{id}")
    @ApiOperation("启用")
    @LogOperation("启用")
    public Result setCommonDefaultRole(@PathVariable("id") String id,@PathVariable('"第二个参数')String 第二个参数) {
        System.out.println(id);
        sysRoleService.setCommomDefaultRole(id);
        return (new Result()).ok("ok");
    }

 

@DeleteMapping 删除操作

前端请求示例:

export function deletePublicRoleGroup (data) {
  return request({
    url: 'sys/sys_role_class',
    method: 'delete',
    data
  })
}

 

后端请求示例:

@DeleteMapping
    @ApiOperation("删除")
    @LogOperation("删除")
    public Result delete(@RequestBody Long[] ids, String type) {
        //效验数据
        AssertUtils.isArrayEmpty(ids, "id");

        sysRoleService.delete(ids, type);

        return new Result();
    }

转自:https://blog.csdn.net/qq_40303219/article/details/110186063
posted @ 2022-02-15 11:04  全琪俊  阅读(552)  评论(0编辑  收藏  举报