使用 Feign 将 POST 数据作为请求参数包含在内



假设我有一个像下面这样的API,其中PersonDto是一个简单的pojo:

@RequestLine("POST /request/path")
String createPerson(PersonDto dto);

当我调用此 API 时,feign 在请求正文中包含 pojo 的所有属性(到目前为止这是标准且良好的),但我在另一端有一个遗留应用程序,它希望将 POST 数据作为请求参数包含在内。我知道我可以做这样的事情:

@RequestLine("POST /request/path?id={id}&name={name}&...")

但是如果我有太多的参数,它会变得非常丑陋。

我尝试使用拦截器和RequestTemplate.query以编程方式添加参数,但它们最终也都出现在请求正文中。

有什么办法假装做这样的事情吗?

你可以这样使用:

@RequestLine("POST /request/path")
@Headers("Content-Type: application/json")
String createPerson(PersonDto dto);

它需要 JDK1.8

最新更新