RESTAngular-PUT、新しいレコードを作成します
-
22-12-2019 - |
質問
REST APIとの通信を容易にするために、RESTAngularを使用してサービスを作成しました。私がオブジェクトを持っているとしましょう Person
.ここに私のサービスがあります:
myApp.factory('RESTService', [ 'Restangular', function (Restangular) {
var restAngular = Restangular.withConfig(function (Configurer) {
Configurer.setBaseUrl('/myAPI/');
});
var service = {};
service.Person= restAngular.service('person');
return service;
}]);
私は成功することができます:
のリストを取得する Person
RESTService.Person.getList().then(function (response) {
$scope.persons = response.plain();
})
1つを取得します。 Person
RESTService.Person.one(id).get().then(function (response) {
$scope.person = response.plain();
})
投稿(更新) Person
RESTService.Person.post($scope.person).then(
function (successResponse) {
// success stuff
},
function (errorResponse) {
console.log("fail", errorResponse.status);
}
)
しかし、私はできません PUT
(新しいレコードを作成します)。今、私はフォームを持っていて、フォームのデータが保持されているとしましょう $scope.formData
.私は作りたいです PUT
に含まれるオブジェクトを渡す要求 $scope.formData
私のAPIに。どうすればいいですか?
編集:明確にするために、私のAPIはRESTなので、私はそうします
GET - /myAPI/person
すべての人のリストを取得するにはGET - /myAPI/person/123
id=123の人を取得するにはPOST - /myAPI/person/123
id=123の人を更新するにはPUT - /myAPI/person
私のデータベースに新しい人を挿入するには
解決
あなたがまだidを知らない人を作成するとき、あなたのAPIはaを受け入れるべきです POST
オン myAPI/person
.私はRestangularがそれを期待していると思います。
あなたは受け入れたくない PUT
, 、要求が冪等ではないためです。これはaのセマンティクスの一部です PUT
そして、あなたはそれを守りたいと思っています。
このSOの質問では、これをより詳細に説明しています: VS POSTをRESTに入れる
所属していません StackOverflow