【发布时间】:2019-05-04 03:53:07
【问题描述】:
我在 api/books 设置了一个 rest api,可以在那里发送一个新的 book 对象,它将被添加到数据库中。问题是,我怎样才能正确地捕捉到正在发布的内容,以便例如验证正在发送的内容?
@RequestMapping(value="/api/books", method = RequestMethod.POST)
public String bookSavePost(@RequestBody Book book) {
bookRepository.save(book);
return "redirect:/api/books";
}
这很有效,因为它保存了这本书,我可以捕捉到用户发送的内容,但是启用此功能后,它会覆盖默认的 REST 方法,该方法不允许人们再实际查看 api。如果我将此特定方法更改为 GET,它会返回一个字符串“redirect:/api/books”,因此它甚至不会重定向任何内容。有什么方法可以将其实际重定向到其余 api 端点?
【问题讨论】:
-
你可以试试
@PostMapping("/api/books") -
就像用 PostMapping 替换 RequestMapping 一样?那没有用。 PostMapping 不只是 @RequestMapping(value="/api/books", method = RequestMethod.POST) 的快捷方式吗
-
是的,但它也设置了@RequestMapping(value="/api/books", method = RequestMethod.POST, consumer = "application/json",produces="application/json")。我认为
consumers属性的缺失是您的问题