关于post请求体参数的三部分:body,header,query。
boby:接收参数时,用@RequestBody注解注入(json数据注入到类的对象属性中);
query:接收参数时,在不用注解的情况下,一般默认为query部分
header:接收参数时,用@RequestHeader注解注入
例子如下:
body案例
@ApiLog("创建缴费账户信息(缴费分组)")
@Login
@PostMapping("xx/xx")
@ApiOperation(value = "创建缴费账户信息(缴费分组)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "token", value = "token", required = true),
@ApiImplicitParam(dataTypeClass = CreateAccountVo.class, required = true)
})
public R createAccount(@LoginUser AppUserEntity appUserEntity, @RequestBody @Valid CreateAccountVo createAccountVo) {
financePayGroupService.createAccount(createAccountVo, appUserEntity.getId());
return R.ok();
}
query案例:
@ApiLog("删除缴费账户信息(缴费分组)")
@Login
@PostMapping("xx/xx")
@ApiOperation(value = "删除缴费账户信息(缴费分组)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "token", value = "token", required = true),
@ApiImplicitParam(paramType = "query", dataType = "string", name = "payGroupId", value = "缴费分组Id",
required = true)
})
public R deletePayGroup(@LoginUser AppUserEntity appUserEntity, String payGroupId) {
financePayGroupService.logicDel(payGroupId);
return R.ok();
}
注意:这里没有用注解接收参数,默认是query部分。@ApiImplicitParams的注解是用于swagger的接口文档,这部分不参与代码的实质性业务逻辑。
当出现前端的接收部分与java后端的部分不匹配时,会出现参数无法注入,即为null值或者是直接报解析数据终止错误。