验证补丁请求正文 - 弹出启动

时间:2017-08-10 12:53:53

标签: spring spring-boot

有没有办法在spring boot中验证补丁请求正文?

Ex:
[
  {"op": "replace", "path": "/id", "value": "foo"},
   {"op": "replace", "path": "/id2", "value": "foo2"}
]

如果任何用户将带有“op”(字段)的请求作为“xx”和“path”(字段)发送为“se”。有没有办法验证它并抛出400(错误请求),而不改变合同?

1 个答案:

答案 0 :(得分:3)

我尝试了很多方法来解决这个问题。但最后不得不采用这种解决方案。

我的补丁请求签名:

public void patch(@RequestBody List<PatchOperation> operations)

我创建了一个简单的函数来验证请求中是否存在有效的补丁密钥。

void validatePatchOperation(PatchOperation patchOperation) {
    if (patchOperation.getOp() == null) {
        throw new BadRequestException();
    }
    if (patchOperation.getPath() == null) {
        throw new BadRequestException();
    }
    if (patchOperation.getValue() == null) {
        throw new BadRequestException();
    }
}

并在for-each

中使用了这个