RESTAngular - PONER, Crear nuevo registro
-
22-12-2019 - |
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 personasGET - /myAPI/person/123
para conseguir que la persona con id=123POST - /myAPI/person/123
para actualizar la persona con id=123PUT - /myAPI/person
para insertar una nueva persona en mi base de datos
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