Итак, я работаю над клиентом REST, который использует REST API для получения объекта JSON с помощью Spring RestTemplate.Таким образом, я получаю ответ HTTP 200 OK, но список (оборудование) внутри объекта класса равен нулю.Но другие поля выбираются.Когда я делаю тот же запрос, используя Почтальон, он работает хорошо.В чем может быть причина этого?
Фрагмент кода RestTemplate:
RestTemplate restTemplate = new RestTemplate();
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Content-Type", "application/json");
requestHeaders.add("Authorization", "Bearer " + apiToken);
HttpEntity entity = new HttpEntity(requestHeaders);
ResponseEntity<CloverMerchant> response = restTemplate.exchange(getMerchantDetailsUrl, HttpMethod.GET, entity, CloverMerchant.class);
return response.getBody();
Класс модели CloverMerchant:
private String id;
private String name;
private String website;
private boolean isBillable;
private CloverBusinessEquipments equipment;
// other relevant getters and setters
Класс модели CloverBusinessEquipments:
private List<CloverBusinessEquipment> elements;
public CloverBusinessEquipments() {
}
@JsonGetter("elements")
public List<CloverBusinessEquipment> getElements() {
return elements;
}
Класс модели CloverBusinessEquipment:
private String merchantId;
private String serialNumber;
private String equipmentCode;
private String equipmentCodeDesc;
private String provisionedDeviceType;
private boolean boarded;
private boolean provisioned;
// relevant getters and setters
Ожидаемый ответ JSON от REST API:
{
"id": "5ZTFCGXQKVZNA",
"name": "xxxx",
"website": "https://xxxx.io",
"isBillable": false,
"equipment": {
"elements": [
{
"merchantId": "5ZTFCGXQKVZNA",
"boarded": false,
"provisioned": true,
"serialNumber": "C030UQ71040182",
"equipmentCode": "105J",
"equipmentCodeDesc": "Clover Mini",
"provisionedDeviceType": "MAPLECUTTER"
},
{
"merchantId": "5ZTFCGXQKVZNA",
"boarded": false,
"provisioned": true,
"serialNumber": "C050UQ75150054",
"equipmentCode": "1297",
"equipmentCodeDesc": "Clover Station 2018",
"provisionedDeviceType": "GOLDENOAK"
}
]
}
}