Spring Boot / FeignClient: POST Json Body

В настоящее время я пытаюсь реализовать вызов POST для бэкэнда, который требует от меня POST json в качестве тела.

Теперь я столкнулся с проблемой, что Feign не передает аннотированное тело в бэкэнд, а только пустые данные.

Как только я добавляю один @Param или карту, эти значения передаются, и клиент работает нормально.

Чтобы повысить удобочитаемость, я бы предпочел аннотировать метод с помощью Body и получать значения из моей конфигурации, а не передавать их в качестве параметра метода.

Следующий пример должен работать согласно документации Feign:

@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@Headers("Content-Type: " + MediaType.APPLICATION_JSON_VALUE)
@Body("%7B\n"
  + "  \"user\": \"${logintoken.user}\",\n"
  + "  \"pwd\": \"${logintoken.password}\",\n"
  + "%7D")
String getLoginToken();

person deveth0    schedule 25.05.2018    source источник


Ответы (1)


Это известная ошибка:

https://github.com/OpenFeign/feign/issues/503

Если вам нужно тело, попробуйте Unirest. Не декларативно, а строительно.

person mentallurg    schedule 25.05.2018
comment
argg :-( Спасибо за ответ. Я не хочу заменять клиента, поскольку он уже используется в других частях проекта, похоже, мне нужен другой подход (например, с использованием Map ‹String,?› поскольку @RequestBody, похоже, сделать работу. - person deveth0; 26.05.2018