Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 将抽象请求与假请求一起使用_Spring Boot_Kotlin_Jackson_Feign - Fatal编程技术网

Spring boot 将抽象请求与假请求一起使用

Spring boot 将抽象请求与假请求一起使用,spring-boot,kotlin,jackson,feign,Spring Boot,Kotlin,Jackson,Feign,我试图使用一个接口作为Feign中的RequestBody,但是Feign正在创建一个空对象作为请求。这是不可能的还是我做错了什么?到目前为止,我找不到关于这个话题的任何东西 这是我正在尝试做的一个简化示例(实际上有3种不同的请求) 如果我现在使用任一实现调用createBooking(),则Feign总是序列化 {} 而不是 { "product": "productA" } 及 问题是参数类型,当我们调用Feign.target(…)时,Feign开始将BookingClient

我试图使用一个接口作为Feign中的RequestBody,但是Feign正在创建一个空对象作为请求。这是不可能的还是我做错了什么?到目前为止,我找不到关于这个话题的任何东西

这是我正在尝试做的一个简化示例(实际上有3种不同的请求)

如果我现在使用任一实现调用
createBooking()
,则Feign总是序列化

{}
而不是

{
    "product": "productA"
}


问题是参数类型,当我们调用Feign.target(…)时,Feign开始将BookingClient解析为Http请求模板,而body类型是BookingRequest,因此Feign总是序列化“{}”

{
    "product": "productA"
}
{
    "product": "productA",
    "discountCode": "discountCode"
}
interface BookingClient {
    @RequestLine("POST /booking")
    @Headers("Content-Type: application/json")
    // BookingRequest should change to NormalBooking or DiscountedBooking
    fun createBooking(request: BookingRequest): BookingResponse
}