Я строю API, используя Spring Boot 2.2.2
и Kotlin 1.3.61
. Я делал это раньше и не помню, чтобы сталкивался с этой проблемой.
В основном у меня есть следующий DTO:
class RequestDTO {
@JsonProperty(value = "phone_number")
var phoneNumber: String = ""
}
И я хочу использовать его в качестве параметра для контроллера POST :
@PostMapping("/test")
fun test(@RequestBody body: RequestDTO): Object {
return service.doStuff(body)
}
Я запрашиваю его с
{
"phone_number": "12345"
}
Для My RequestDTO
не определено свойство phoneNumber
(пустое значение по умолчанию). Если я передаю phoneNumber
в запросе, то он отлично десериализуется.
Также очень странно то, что следующий код работает нормально:
val om = ObjectMapper()
val rqDto = RequestDTO()
rqDto.phoneNumber = "12345"
val rqStr = om.writeValueAsString(rqDto) // { "phone_number": "12345" }
val rqDto2 = om.readValue(rqStr, RequestDTO::class.java) // [phoneNumber = "12345"]
Таким образом, проблема, кажется, что-то о @RequestBody
и @JsonProperty
вместе ...? Я что-то пропустил?
Я также безуспешно пытался использовать @get:JsonProperty()
и @set:JsonProperty()
.
Спасибо