Я пишу контроллер с Java для URL-адреса webhook, который получает вызов метода POST с телом JSON, которое мне нужно собрать.
Это упрощенная версия контроллера с аннотациями Spring:
@RestController
public class MyWebhoook {
@PostMapping("/my-webhook")
public void getMyJson(@RequestBody Map<String, Object> json) {
System.out.println("WebHook collected JSON: " + json);
}
}
Я проверяю это с почтальоном, отправляющим этот JSON:
Header: Content-Type / application/json
{
"webhookKey" : "tranviaVermellCostaAvall",
"token" : "xx",
"channelId": 1,
"propertyId": "999999",
"status": "new",
"reservationId": "111211221",
"reservationStatus" : 1
}
И я получаю этот ответ:
{
"timestamp": "2019-04-09T07:23:38.093+0000",
"status": 405,
"error": "Method Not Allowed",
"message": "Request method 'POST' not supported",
"path": "/my-webhook"
}
Журнал сервера, дает дополнительную информацию:
Request method 'POST' not supported, path=/my-webhook}] as "application/json" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@7756c3cd
Я пробовал эти разные подходы, с тем же результатом:
@RequestMapping(value = "/my-webhook", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
вместо аннотации @PostMapping("/my-webhook")
.
Моделирование полученного JSON как объекта Java вместо Map<String, Object> json
.
- Использование HttpServletRequest вместо аннотации @RequestBody, попытка прочитать запрос как строку.
Я не понимаю, почему метод POST не разрешен . Любая помощь, будет очень признателен.