Oi Pedro,
Seria algo assim:
@RestController
@RequestMapping("/topicos")
public class TopicosController {
@Autowired
private ServicoExternoService service;
@GetMapping
public ResponseEntity exemplo(DadosForm form) {
RetornoApiDTO retorno = service.chamarApiExterna(form);
return ResponseEntity.ok(retorno);
}
}
@Service
public class ServicoExternoService {
private static final String URI = "http://api.externa.com/servico";
public RetornoApiDTO chamarApiExterna(DadosForm form) {
RestTemplate rest = new RestTemplate();
RetornoApiDTO retorno
= rest.getForEntity(URI, RetornoApiDTO.class);
return retorno;
}
}
public class RetornoApiDTO {
private String campo1;
private String campo2;
//getter e setters
}
O controller chama a classe service que encapsula a chamada a API externa utilizando o RestTemplate
.
E os dados retornados pela API externa são representados pelo DTO RetornoApiDTO
.