spring - 忽略空请求正文?
问题描述
在为我的 REST API(使用 Spring Boot 构建)编写测试后,我意识到,即使不使用请求主体(见下文),使用请求主体调用端点也是成功的——实际上,Spring 忽略了主体。
这不是一个大问题,但我想知道我应该用什么哲学来解决这个问题:
- 当通过一个意想不到的身体时我应该失败(当不期望任何时候)?
- 如果是这样,这是否可以在 Spring 中进行配置,以便对主体/参数进行严格检查?
- 最后,除了个人偏好和/或经验之外,有没有一种好的方法来决定这一点,还是我应该简单地使用“如果它没有坏,就不要修复它”作为我的口头禅?
@PatchMapping(value = "/products/{pid}/sell")
public TxDTO sell(@NotBlank @PathVariable("pid") String pid,
@NotNull @RequestParam Float price)
解决方案
我认为你不应该考虑太多。从技术上讲,忽略意外主体并不违反任何软件开发原则。尽管这可能会让您在项目上下文中个人感到不舒服,但您可能需要考虑其他场景,其中有一个过滤器或 servlet 坐在您面前@RestController
做一些您不知道的其他事情。
关键是这不是您应该全局关闭的功能,也不值得花时间实现自定义代码以在本地为单个端点关闭它:)。
推荐阅读
- redis - 为什么要使用etcd?我可以使用redis来实现配置管理/服务发现等吗?
- php - 如果 REQUEST_URI 以特定路径开头,.htaccess 重定向并重写 url
- python - 带有日期列表的 Pyspark DF(使用 PANDAS)从今天开始 BACK 1 年
- javascript - 导入 npm 模块作为源代码
- content-management-system - AEM 6.4 覆盖 /libs 下的内部区域组件/文件
- c++ - 在互斥体范围之外读取 volatile 变量,而不是 std::atomic
- python-3.x - 如何重复注册 aws cognito [解决]
- botframework - Microsoft Teams Bot 的可点击文本
- ionic3 - Ionic 3 动画生成器
- php - PHPUnit 7.2 和 Codeception 2.4 不兼容