Spring Reactive WebFlux--如何定制BadRequest错误消息

本文介绍了Spring Reactive WebFlux–如何定制BadRequest错误消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!,在我的请求处理程序中,如果传入的accountId不能转换为有效的ObjectId,我希望捕获错误并发回有意义的消息;然而,这样做会导致返回类型不兼容,并且我不知道如何实现这个相当简单的用例。,我的代码:,body(T body)方法更改返回的Mono的类型,使其为String)Mono<ResponseEntity<String>>;但是,将该方法的返回类型更改为Mono<ResponseEntity<?>>也不起作用:,因为它在另一个return语句中给出了不兼容的类型错误:,显然,将方法的返回类型更改为Mono<?>是可行的,但随后的响应是ResponseEntity的序列化JSON,这不是我想要的。,我也尝试过使用onErrorXxxx()方法,但它们在这里也不起作用,因为转换错误甚至在计算通量之前就发生了,而且我只得到了一个带有空消息的&quot;vanilla&quot;400错误。,我唯一能想到的解决方法就是向Account对象添加一个message字段并返回该字段,但这确实是一个可怕的黑客攻击。,@Thomas-andolf的回答帮助我找到了实际的解决方案。,对于将来遇到这个问题的任何人来说,我实际上是如何解决这个难题的(当然,您仍然需要try/catch来拦截ObjectId构造函数抛出的错误):,要真正看到返回的Body中的message,需要在application.properties中添加server.error.include-message=always(参见here)。,使用onError()在这里不起作用(我确实在它的所有变体中尝试过),因为它需要Mono<ResponseEntity<Account>>,并且无法从错误状态生成一个(在添加消息正文时)。,这篇关于Spring Reactive WebFlux–如何定制BadRequest错误消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册