如何捕获什么是POST休息API

时间:2018-12-02 19:31:47

标签: spring rest api

我在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端点吗?

2 个答案:

答案 0 :(得分:2)

您可以编写自己的reuquest拦截器。

Spring提供了HandlerInterceptor类:

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/HandlerInterceptor.html

以下是如何执行此操作的快速示例: https://www.baeldung.com/spring-mvc-handlerinterceptor

答案 1 :(得分:0)

重定向必须成功完成三件事:HTTP代码301或302和location头,其中包括您希望客户端访问的端点。

例如,您应该在标题部分

location: '/correct/endpoint'