我正在调用一个遗留的rest端点。在那里我必须反序列化一个带有方括号 author[name] 的rest端点中的查询参数。
- 问 *:是否可以将属性 author name 反序列化到AuthorDto(spring boot + kotlin)中?
import com.fasterxml.jackson.annotation.JsonAutoDetect
import com.fasterxml.jackson.annotation.JsonProperty
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RestController
@RestController
class AuthorController {
@GetMapping("/author/{id}")
fun getAuthorFromLegacyApi(
@PathVariable("id") id: Long,
authorDto: AuthorDto?
) = ResponseEntity.ok(authorDto)
}
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
data class AuthorDto(
@RequestParam(name = "author[name]")
val name: String?,
// long list of different query parameters
val country: String? = null,
)
- 代码:https://github.com/nusmanov/spring-boot-validation-hibernate/blob/main/src/main/kotlin/com/example/bookvalidation/author/AuthorController.kt
- 要进行测试,请执行以下操作:获取http://localhost:8080/author/5?作者[姓名]=Joe
- 有一个junit测试,见上文
2条答案
按热度按时间czq61nw11#
是的,如果您使用
@RequestParam("author[name]")
注解authorDto
,则这是可能的:nnt7mjpx2#
用Map怎么样。
我尝试使用
author/5?author%5Bname%5D=Tom¤cy=INR
,得到了Hello 5 Tom INR
的响应