关于post请求体参数的三部分:body,header,query

关于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值或者是直接报解析数据终止错误。

猜你喜欢

转载自blog.csdn.net/yunxuantu/article/details/83045810