当前位置: 首页 > 知识库问答 >
问题:

验证补丁请求正文-Spring boot

龙嘉誉
2023-03-14

有没有办法在spring boot中验证补丁请求主体?

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

如果任何用户发送请求时,“op”(字段)为“xx”,而“path”(字段)为“se”。有没有办法在不更改合同的情况下验证它并抛出400(错误的请求)?

共有1个答案

魏鹤轩
2023-03-14

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

我的补丁请求签名:

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();
    }
}

把这个用在了一个为每个人准备的

 类似资料:
  • 在我的spring-boot服务中,我使用https://github.com/java-json-tools/json-patch用于处理PATCH请求。 一切似乎都很好,除了一种避免修改不可变字段的方法,如对象ID、creation_time等。我在Github上发现了一个类似的问题https://github.com/java-json-tools/json-patch/issues/21我

  • 如何在Laravel中验证补丁/放置请求 根据Laravel留档http://laravel.com/docs/5.1/controllers,请求由资源控制器的操作处理 由于请求应更新部分资源并将更新整个资源,因此我的 验证应如下所示: 我应该这样做吗 依靠您的专业答案。

  • 我刚刚开始从我现有的网络库移植到Android的Volley。到目前为止,我已经成功地实现了适用的Volleys ImageLoader。现在,我试图让我的第一个超文本传输协议调用和运行,但我发现这个错误。 注意:我有意以补丁请求开始,因为我将经常使用它们。另外,我的版本Volley也支持补丁:https://android.googlesource.com/platform/frameworks

  • 我正在使用Symfony2开发一个REST API。我有一个预订系统,我想发送电子邮件给一个客户时,他的预订是由管理员验证。 我有一个预订重新源,我们可以使用以下url验证预订: 修补localhost/:id/validate

  • 问题内容: 我正在使用djang-tastypie作为后端和AngularJs作为前端的API。我正在使用angularjs $ http从CRUD发送请求。GET,POST,PUT一切都很好,但是当我尝试发送PATCH请求时,出现错误,未定义PATCH方法。我已经在angular中创建了一个api调用工厂,但是PATCH请求在那里不起作用。 这是我的HTML代码 当我在控制台中使用此代码发送路径

  • 我们正在使用JAX RS为我们的一个项目实现一个REST API。要求是用户将以JSON格式传入请求对象。 让我们假设我们有一个在命中APIendpoint时调用的方法 示例请求对象: { “firstName”:“Test”, “lastName”:“Name”, “sno”:“A123” } 吸气剂和setter 现在,如果用户尝试向上面给出的请求对象添加其他参数(例如:“age”)并调用ap