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

未验证请求正文对象

诸葛砚文
2023-03-14

我有一个REST API使用POST调用来创建记录,我希望在POST调用中传递某些对象,如果缺少任何东西,我必须直接拒绝它们的唯一,

 @RequestMapping(value="/saveEssentialDetails",produces={"application/json"},method=RequestMethod.POST)
ResponseEntity<?> saveEssentialDetails(@ApiParam(value="Body Parameters")@RequestBody @Validated EssentialDetails essentialDetails, BindingResult bindingResult)throws Exception;
    @Data
@NoArgsConstructor
@Document(collection="essentialDetails")
public class EssentialDetails {

    @NotNull
    Integer dpId;
    @Id
    @NotEmpty
    String tpId;
    @NotEmpty
    List<FamousFor> famousFor;
    @NotEmpty
    List<OpenHours> openHours;
    @NotEmpty
    Pictures uploadedImages;
    @NotEmpty
    List<FloorDescription> floorDescriptions;
    @NotEmpty
    List<Outlets> mallOutlets;

}

但是,当使用丢失的属性进行Post调用时,我可以在MongoDB中创建一个条目,我不想保留它,因为这不是一个正确的请求,@validation对我来说不起作用,我正在使用spring boot 2.0.6和MongoDB 4.0.4,任何帮助都非常感谢。提前感谢

共有1个答案

弘承运
2023-03-14

@validated可用于通过自定义验证对象验证对象。用法示例:

@RequestMapping(value = "/")
public String request(@Validated(Account.ValidationStepOne.class) Account account)

不要使用@validate,而是使用@valide,它会检查您在实体中使用的验证注释。

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

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

  • 我刚开始使用kotlin和Spring Boot开发一个简单的web应用程序。 让我们以一个简单的数据类对象为例 好吧,使用任何请求体发出请求只会抛出http 400错误 为了消除这个错误,我发现我们需要为构造函数参数提供一些默认值,如下所示: 或者也许: 在这个示例中,只有一个参数,但是手动使用较大的类似乎不是一个好方法 提前致谢

  • 如何在处理正文请求之前验证身份验证? 我正在使用vertx: 我想在处理正文请求之前验证身份验证。但我得到了错误的java。lang.IllegalStateException:请求已被读取 使用暂停功能上的延迟复制: 当运行delay(100)时(这是验证过程的示例),我得到了上面的错误。如果我对延迟(100)进行注释,它可以正常工作。

  • 我已经按照这里的建议试过了 但这并没有改变什么。

  • 我有一个设置为接收来自WooCommerce的网络钩子的Rails应用程序。具体来说,我正在寻找创建订单的时间。我已经测试并验证了它在我protect_from_forgery时是否有效,除了创建。现在我正在尝试通过验证网络钩子来保护我的应用程序。WooCommerce的留档声明在请求标头中传递以下秘密: 秘密:一个可选的密钥,用于生成请求正文的HMAC-SHA256哈希,以便接收者可以验证Web