我正在为我们的应用程序开发一个新的RESTful Web服务.
在某些实体上执行GET时,客户端可以请求实体的内容.如果他们想要添加一些参数(例如排序列表),他们可以在查询字符串中添加这些参数.
或者,我希望人们能够在请求正文中指定这些参数. HTTP/1.1似乎没有明确禁止这一点.这将允许他们指定更多信息,可以更容易指定复杂的XML请求.
我的问题:
我有以下带有 GET 方法的 REST 控制器,该方法具有 BODY,可与测试和邮递员一起正常工作
@RestController
@RequestMapping(value = "/xxx")
public class Controller {
@GetMapping({"/find"})
public LocalDateTime findMax(@RequestBody List<ObjectId> ids) {
//return sth
}
}
Run Code Online (Sandbox Code Playgroud)
但是当使用 FeignClient 调用服务时, GET 请求会生成一个 POST 请求(@GetMapping 注解被忽略)
@FeignClient
public interface CoveragesServiceResource extends CoveragesService {
@GetMapping({"/find"})
LocalDateTime findMax(@RequestBody List<ObjectId> ids);
}
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:
Request method 'POST' not supported
Run Code Online (Sandbox Code Playgroud)