В нашем приложении Spring Boot мы вызываем сторонний API отдыха, который вернет нам данные ответа в следующем формате:
Ниже ответ будет получен при обнаружении данных:
{
"items": [
{
"eventType": "ABC",
"timestamp": "01-01-2020"
},
{
"eventType": "XYZ",
"timestamp": "02-02-2020"
}
]
}
Ниже будет получен ответ, когда данные не найдены или пустые:
{
"items": []
}
На самом деле, наш API оставшийся вернет данные правильного формата, если он будет успешным (данные найдены). Но когда данные не найдены (пустые данные), наши остальные API возвращают как этот "{}" вместо "{'items': []}" , который не правильно.
В контроллере мы вызываем методы класса обслуживания:
@Autowired
private ProductService productService;
@GetMapping("/getProduct/{productNo}")
public ResponseEntity<Product> getProduct(@PathVariable("productNo") String productNo) {
logger.debug("--- getProduct() Method Called ---");
return ResponseEntity.ok(productService.getProduct(productNo));
}
В классе обслуживания мы вызываем внутренний URL-адрес, используя:
@Autowired
private RestTemplate restTemplate;
@Override
public Product getProduct(String productNo) {
return restTemplate.getForObject("BACK_END_URL/" + productNo, Product.class);
}
Пожалуйста, дайте нам знать, что мы что-то здесь упустили или сделали что-то не так.
Заранее спасибо:)