質問

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に入れる

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top