Postman image:
REST client:
import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.client.RestTemplate; @SuppressWarnings("unchecked") private void testPost() { String url = "http://localhost:8080/uds-transaction-1.3.0/pipeline/list/"; RestTemplate restTemplate = new RestTemplate(); List<Long> list = new ArrayList<Long>(); list.add(new Long(30284039614L)); list.add(new Long(30262601669L)); list.add(new Long(30262662522L)); UdsTransactionRequest req = new UdsTransactionRequest(); req.setTrxIdsLong(list); HttpEntity<UdsTransactionRequest> request = new HttpEntity<>(req); ServiceResponse<UfsPipeline> response = restTemplate.postForObject(url, request, ServiceResponse.class); List<UfsPipeline> results = response.getData(); if (results != null && !results.isEmpty()) { for (UfsPipeline a : results) { System.out.println("---------------- txNo: " + a.getTxNo()); } } }
Endpoint:
@RequestMapping(value = "/pipeline/list/", produces = "application/json", method = RequestMethod.POST) public ServiceResponse<UfsPipeline> getOfficeDocumentEndPoint(@RequestBody UdsTransactionRequest req) { ServiceResponse<UfsPipeline> response = new ServiceResponse<>(); try { List<UfsPipeline> list = pipelineRepo.getPipelinesByKeys(req.getTrxIdsLong()); response.setData(list); } catch (Exception e) { LOG.error(e.getMessage(), e); response.addError(e); } return response; }
Support class:
import java.io.Serializable; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.ns.model.DataCacheMeta; import com.ns.model.notification.UfsPipeline; @JsonInclude(Include.NON_NULL) public class ServiceResponse<T extends ResponseData> implements Serializable { public static final String OK = "ok"; public static final String ERROR = "error"; private static final long serialVersionUID = 4579157541957745675L; private List<ResponseError> errors; private List<T> data; private String status = OK; public void addError(Exception e) { if (null == errors) { errors = new ArrayList<>(); } ResponseError error = new ResponseError(null, ResponseError.ERROR, e.getMessage()); errors.add(error); setStatus(ServiceResponse.ERROR); } public void addData(T dataElement) { if (null == data) { data = new ArrayList<>(); } data.add(dataElement); } @JsonSubTypes({@JsonSubTypes.Type(value = ResponseError.class, name = "error")}) public List<ResponseError> getErrors() { return errors; } public void setErrors(List<ResponseError> errors) { this.errors = errors; } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = DataCacheMeta.class, name = "DataCacheMeta"), @JsonSubTypes.Type(value = UfsPipeline.class, name = "UfsPipeline") }) public List<T> getData() { return data; } public void setData(List<T> data) { this.data = data; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } }