最近我对API做了更改,一开始应该是向后兼容的,但由于客户端我的端点开始响应400 Bad Request,我所做的是将可选的RequestBody添加到PUT端点,这应该不会造成任何问题,因为它是可选的,但客户端发送的空字符串值无法反序列化到对象中,Jackson无法反序列化.
我的dto对象:
data class TestRequest(@field:Future val expiresDatetime: Instant? )
端点定义:
@PutMapping("/{testId}/revoke")
fun revoke(
@PathVariable testId: String,
@Valid
@RequestBody(required = false)
request: TestRequest? = null,
): TestRevokeResponse =
testService.revoke(testId, request)
在调试要发送到端点的内容时,我注意到以下标头:
Content-Type: application/json content-type: application/json; charset=utf-8 content-length: 2
个
有效载荷为:""
有没有一种方法可以在不编写定制反序列化程序的情况下将空字符串默认为NULL?
我已经try 编写我自己的反序列化程序,但创建反序列化程序似乎是一种开销.