Buongiorno.
Ho realizzato un controller Angular che invoca un servizio REST, realizzato su Spring usando i CRUD Repository:
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);
})
}
});
Sul lato Spring, i servizi REST esposti hanno questa struttura:
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;
}
Tutto funziona bene.
Se però realizzo il medesimo servizio in quest'altro modo
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);
}
le cose smettono di funzionare, poichè non è possibile accedere con successo alla risposta ottenuta dal controller Angular, anche quando questa è ottenuta con successo.
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.