Spring's RestTemplate: сложный объект для запроса параметров - PullRequest
1 голос
/ 07 марта 2019

У меня есть сложный объект, подобный этому:

public class ComplexObject {

    private String a;
    private String b; 
    ...
    private String z;

    //getters and setters
}

Я хочу вызвать веб-сервис, который получает все поля сложных объектов: http://localhost:8080/api/some_service?a=something&b=something&...&z=something

Есть ли способ передать ComplexObject в RestTemplate и выполнить работу автоматически, или я должен выполнить ручное отображение самостоятельно?

Спасибо!

1 Ответ

2 голосов
/ 08 марта 2019

ДА!есть способ передать полный сложный объект, чтобы сделать сервисный вызов, и тогда точно это может быть достигнуто автоматически.И для этого вам нужно изменить способ отправки complexObject и использовать HTTP POST (настоятельно рекомендуется), например:

public HttpStatus send() 
{
ComplexObject complexObj = getYourFilledObject();


ResponseEntity<HttpStatus> response = restTemplate.postForEntity(ROOT_URI, complexObj, HttpStatus.class);

return response;

}

А если нет, то GET является единственнымвариант то к сожалению вы должны отправить как есть.Потому что в конце дня вы либо используете функцию шаблонов отдыха, которая отображает входные параметры, либо создаете свой собственный URI с параметрами, это тот же самый HTTP-запрос GET, и вам нужно достичь его программным путем.

Для примеров ииллюстрация, которую вы можете посетить здесь , и лучшим примером будет весна resttemplate doc

...