簡體   English   中英

發布到REST界面

[英]Posting to a REST interface

需要在URL中將名稱定義為ID,並且需要發布包含數據的對象。

$ scope.dvModel.naam是充當ID的名稱。 顯然,filteredObject是包含數據的對象。

根據一些示例,這就是我所說的服務,看起來還可以。

saveDVservice.query($scope.dvModel.naam, filteredObject);

這是實際的服務。

.factory('saveDVservice', ['$resource', 'CONSTANTS', function($resource, CONSTANTS) {
    'use strict';
    return $resource(CONSTANTS.REST_BASE_URL + '/dv/:name', {}, { query: { method: 'POST', isArray: false, headers: { 'Content-Type': 'application/json' }}});
}]);

這是我在網絡選項卡的查詢字符串參數中看到的內容:0:A 1:D 10:n 11:h 12:i 13:l 14:f 15:e 2:A 3:C 4:5:P 6 :a 7:n 8:n 9:e

這是名稱,但看起來像一個數組。

請求有效負載包含正確順序的實際對象。 可以給我一些如何處理的指導嗎?

據我了解,您想將$scope.dvModel.naam放入URL中,並且希望filteredObject成為請求有效負載。 然后,您需要一個對象,該對象包含鍵name filteredObject$scope.dvModel.naam中所有內容,該值等於$scope.dvModel.naam

另外,您的資源的定義可能應該更改-在第二個參數$resource您需要告訴它從給定對象中提取URL數據的方式:

$resource(CONSTANTS.REST_BASE_URL + '/dv/:name', {name: '@name'}, { query: { method: 'POST', isArray: false, headers: { 'Content-Type': 'application/json' }}});

不幸的是,當您的有效載荷數據與URL數據分開時, $resource並不是最好的$http包裝器。 也許將filteredObject數據包裝在有效載荷中的其他對象中會更好嗎? 然后,您的$resource對象會更好,例如{name: ..., data: {"0": "A", "1": "D", ...}}

由於query默認操作是{method: 'GET', isArray: true} ,所以我將其保留為其他默認值,而是save 這應該開箱即用。

app.factory('DVService', function ($resource) {
  return $resource(CONSTANTS.REST_BASE_URL + '/dv', {name: '@name'}, {}); 
}); 

app.controller('MainCtrl', function ($scope, DVService) {
  var postData = {
    name: 'name',
    fooProp: 'foo',
    barProp: 'bar'
  };

  // save/post        
  DVservice.save({dv: postData}).$promise.then(function (response) {
    console.log(response);
  });

  //query/get
  DVService.query({name: 'name'}).$promise.then(function (response) {
    console.log(response);
  });
}); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM