我有一个REST api服务,应该接收POST调用。
我使用POSTMAN来测试它们,但是我一直收到400错误请求错误,没有正文,也许我正在构建糟糕的控制器......
这是控制器
@PostMapping("/object/delete")
public ResponseEntity<?> deleteObject(@RequestBody long objectId) {
logger.debug("controller hit");
Object o = service.findByObjectId(objectId);
if(o!=null){
service.deleteObject(object);
return new ResponseEntity<>(HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
使用@RequestBody
我应该以JSON方式发送请求:
{
"objectId":100
}
但是我收到400错误,奇怪的是我的记录器logger.debug("controller hit");
没有打印在日志中......
答案 0 :(得分:0)
发送{ "objectId":100 }
会导致在java方法中接收到具有objectId
属性的对象X.
如果您只需要发送ID,则可以使用@PathVariable
@PostMapping("/object/{id}/delete")
public ResponseEntity<?> deleteObject(@PathVariable("id") long objectId) {
另外,请考虑使用DeleteMapping
代替PostMapping
删除对象。