Я разрабатываю серверную часть REST API с помощью Spring для приложения Slack. Мне удалось получать сообщения от Slack (команды с косой чертой), но я не могу правильно получать взаимодействия компонентов (нажатия кнопок).
В официальной документации говорится:
Ваш URL-адрес действия получит HTTP-запрос POST, включая параметр тела полезной нагрузки, который сам содержит строку JSON application / x-www-form-urlencoded.
поэтому я написал следующее @RestController
:
@RequestMapping(method = RequestMethod.POST, value = "/actions", headers = {"content-type=application/x-www-form-urlencoded"})
public ResponseEntity action(@RequestParam("payload") ActionController.Action action) {
return ResponseEntity.status(HttpStatus.OK).build();
}
@JsonIgnoreProperties(ignoreUnknown = true)
class Action {
@JsonProperty("type")
private String type;
public Action() {}
public String getType() {
return type;
}
}
однако я получаю следующую ошибку:
Failed to convert request element: org.springframework.web.method.annotation.MethodArgumentConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'controllers.ActionController$Action'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'controllers.ActionController$Action': no matching editors or conversion strategy found
Что это значит и как решить?