【发布时间】:2022-01-22 18:21:16
【问题描述】:
@PostMapping(path = "/test")
public void save(Map payload) {
testService.save(payload);
}
Spring RestController 在上述情况下返回 204 而不是 200。返回类型为无效且没有内容是响应正文。在没有响应正文且处理成功时返回 204 HTTP 代码是一种既定做法。我想知道为什么Spring默认不这样做?有什么特别的原因吗?
我已经知道如何更改默认状态码,所以这不是问题。
【问题讨论】:
-
你的问题有点误导。你说
returns 204 instead of 200,然后why Spring doesn't do that by default??是哪个? -
顺便说一下,204 在我看来是一个合理的 HTTP 状态代码。有关 204 HTTP 状态代码的更多信息:“这可能用于,例如,在为 wiki 站点实现“保存并继续编辑”功能时。” Source
-
顺便说一下,
Map(假设java.util.Map)是一个原始类型。不要使用原始类型,始终指定必要的类型参数。在你的情况下,Map<?, ?>可能会,尽管混合类型的键对我来说看起来很奇怪。
标签: java spring spring-boot spring-mvc