Buongiorno.
Ho realizzato un controller Angular che invoca un servizio REST, realizzato su Spring usando i CRUD Repository:
Sul lato Spring, i servizi REST esposti hanno questa struttura:codice:angular.module("reseller", []) .controller("resellerController", function($scope, $http) { $scope.ssn = null; $scope.reseller = "null"; $scope.getReseller = function() { $http.get('http://localhost:8081/Reseller/findReseller' + $scope.ssn).then( function(response) { console.log("Data correctly gathered"); $scope.reseller = response.data; }, function(response) { console.log("ERROR: " + response.message + " " + $scope.ssn); }) } });
Tutto funziona bene.codice:@RequestMapping(value = "/findReseller{ssn}", method = RequestMethod.GET) public Reseller findResellerBySsn(@PathVariable("ssn") String ssn) { try { if(!dbPopulated) { insertResellers("src/main/resources/datasets/people_data.csv"); System.out.println("DB populated"); dbPopulated = true; } Reseller reseller = repository.findBySsn(ssn).get(0); if(reseller != null) return reseller; else return null; }
Se però realizzo il medesimo servizio in quest'altro modo
le cose smettono di funzionare, poichè non è possibile accedere con successo alla risposta ottenuta dal controller Angular, anche quando questa è ottenuta con successo.codice:@RequestMapping(value = "/findReseller{ssn}", method = RequestMethod.GET) public ResponseEntity<Reseller>findResellerBySsn(@PathVariable("ssn") String ssn) { try { if(!dbPopulated) { insertResellers("src/main/resources/datasets/people_data.csv"); System.out.println("DB populated"); dbPopulated = true; } Reseller reseller = repository.findBySsn(ssn).get(0); if(reseller != null) return new ResponseEntity<>(reseller, HttpStatus.FOUND); else return new ResponseEntity<>(HttpStatus.NO_CONTENT); }
Immagino che questo sia dovuto al fatto che, in questo caso, la risposta debba essere in qualche modo divisa fra le sue parti (Http Status e dati) in modo da estrarre semplicemente la parte interessante.
Esiste un modo di farlo da Angular oppure bisogna rassegnarsi al fatto che i servizi REST debbano avere la struttura vista nel primo caso? Grazie.

Rispondi quotando