我在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端点吗?
答案 0 :(得分:2)
您可以编写自己的reuquest拦截器。
Spring提供了HandlerInterceptor类:
以下是如何执行此操作的快速示例: https://www.baeldung.com/spring-mvc-handlerinterceptor
答案 1 :(得分:0)
重定向必须成功完成三件事:HTTP代码301或302和location
头,其中包括您希望客户端访问的端点。
例如,您应该在标题部分
location: '/correct/endpoint'