Kotlin 使用POJO假装使用QueryMap
我发现我可以做这样的事情:Kotlin 使用POJO假装使用QueryMap,kotlin,netflix-feign,feign,Kotlin,Netflix Feign,Feign,我发现我可以做这样的事情: interface MarketDataRestClient { @RequestLine("GET /api/v1/depth") fun getOrderBook(@QueryMap orderBookQuery: OrderBookQuery) : OrderBook } OrderBookQuery: data class OrderBookQuery(val symbol: String, val limit: Int? = 100) 和
interface MarketDataRestClient {
@RequestLine("GET /api/v1/depth")
fun getOrderBook(@QueryMap orderBookQuery: OrderBookQuery) : OrderBook
}
OrderBookQuery:
data class OrderBookQuery(val symbol: String, val limit: Int? = 100)
和Feign应该生成查询参数:/api/v1/depth?symbol={symbol}&limit={limit}
不幸的是,我得到的只是:
Exception in thread "main" java.lang.IllegalStateException: QueryMap parameter must be a Map: class OrderBookQuery
at feign.Util.checkState(Util.java:128)
at feign.Contract$BaseContract.parseAndValidateMetadata(Contract.java:126)
at feign.Contract$BaseContract.parseAndValidatateMetadata(Contract.java:64)
at feign.ReflectiveFeign$ParseHandlersByName.apply(ReflectiveFeign.java:146)
at feign.ReflectiveFeign.newInstance(ReflectiveFeign.java:53)
at feign.Feign$Builder.target(Feign.java:198)
at feign.Feign$Builder.target(Feign.java:194)
此功能将在
9.7
中提供。截至撰写本答案时,当前发布的版本为9.6
。如果不想等待,请克隆存储库并运行生成项目