Как поймать, что POST'ed для отдыха API - PullRequest
0 голосов
/ 02 декабря 2018

У меня настроен api rest в api / books, и можно отправить туда новый объект book, и он будет добавлен в базу данных.Вопрос состоит в том, как я могу правильно отследить то, что отправляется с помощью POST, например, можно проверить, что отправляется?

@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 голосов
/ 02 декабря 2018

Вы можете написать собственный запрос Interceptor.

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

0 голосов
/ 02 декабря 2018

Для успешного перенаправления необходимы три две вещи: HTTP-код 301 или 302 и заголовок location, включающий конечную точку, к которой вы хотите, чтобы клиент посетил.

Например, в заголовкахраздел вы должны иметь

location: '/correct/endpoint'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...