Pregunta

He creado un servicio con RESTAngular con el fin de facilitar la comunicación con mi API de REST.Digamos que tengo un objeto Person.Aquí está mi servicio:

myApp.factory('RESTService', [ 'Restangular', function (Restangular) {
    var restAngular = Restangular.withConfig(function (Configurer) {
        Configurer.setBaseUrl('/myAPI/');
    });
    var service = {};
    service.Person= restAngular.service('person');
    return service;
}]);

Puedo correctamente:

OBTENER la lista de Person

RESTService.Person.getList().then(function (response) {
   $scope.persons = response.plain();
})

CONSEGUIR uno Person

RESTService.Person.one(id).get().then(function (response) {
    $scope.person = response.plain();
})

POST (Actualización) Person

RESTService.Person.post($scope.person).then(
                function (successResponse) {
                      // success stuff
                },
                function (errorResponse) {
                    console.log("fail", errorResponse.status);
                }
            )

Pero no puedo hacer PUT (crear un nuevo registro).Ahora digamos que tengo un formulario y el formulario de datos que se mantiene en $scope.formData.Quiero hacer un PUT solicitud de pasar el objeto contenido en $scope.formData a mi API.¿Cómo puedo hacer eso?


EDITAR:Para aclarar mi API es el REPOSO, por lo que tengo que hacer

  • GET - /myAPI/person para obtener la lista de todas las personas
  • GET - /myAPI/person/123 para conseguir que la persona con id=123
  • POST - /myAPI/person/123 para actualizar la persona con id=123
  • PUT - /myAPI/person para insertar una nueva persona en mi base de datos
¿Fue útil?

Solución

Cuando la creación de una persona por la cual usted no conoce el id, su API debe aceptar un POST en myAPI/person.Supongo Restangular espera que.

Usted no quiere aceptar un PUT, porque la petición no es idempotente.Esto es parte de la semántica de un PUT y desea adherirse a que.

De este MODO la pregunta explora con más detalle: PONER vs POST en el RESTO

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top