2015-06-01 2 views
1

Если все, что я делаю, делает базовые запросы GET из API (не полный CRUD), лучше ли использовать $ http или $ resource?

Я вижу, что $ resource использует $ http под капотом, так что это делает его излишним? Код написан более упорядоченным с использованием $ resource, чем $ http, особенно когда я добавляю дополнительные запросы GET. Ниже приведен мой пример с использованием обоих. Попытка определить, с чем лучше двигаться вперед. Все, что я читаю, кажется, указывает в обоих направлениях. Есть ли общий консенсус?

$ ресурсная

/* Data Factory */ 
myApp.factory('myServ', ['$resource', '$cacheFactory', 
function($resource) { 
    return { 
    Events: $resource('api/v1/events/:slug', {}, {slug: '@slug', cache: true, method: 'get'}) 
    }; 
}]); 

$ Http:

/* Data Factory */ 
angular.module('myFactory', []) 
    .factory('eventRepo', function($http) { 
     return { 
      Events: function(callback) { 
       $http({ 
        method: 'GET', 
        url: 'api/v1/events', 
        cache: true 
       }).success(callback); 
      } 
     }; 
    }); 
+0

вы также можете найти рестанглулярный. Очень проста в использовании. –

ответ

0

Существует не общий консенсус короткий ответ, это зависит от вашей потребности .....

Я нашел, как наше приложение AngularJs выросло, потребление услуг становится более сложным. Хороший многоразовый подход, который является масштабируемым и гибким, всегда является хорошим правилом. Хорошая инвестиция в архитектуру ваших услуг имеет большое значение для упрощения внедрения, обслуживания и модульного тестирования приложения. Я бы рекомендовал ознакомиться с руководством по стилю Джона Папы по внедрению служб.

https://github.com/johnpapa/angular-styleguide


http://sauceio.com/index.php/2014/07/angularjs-data-models-http-vs-resource-vs-restangular/

$ HTTP встроен в Угловое, так что нет никакой необходимости в дополнительных накладных расходов нагрузки во внешней зависимости. $ http хорош для быстрого извлечения серверных данных, которые действительно не нуждаются в какой-либо конкретной структуре или сложном поведении. Это, вероятно, лучше всего вводить непосредственно в ваши контроллеры для простоты.

$ resouce подходит для ситуаций, которые немного сложнее, чем $ http. Хорошо, когда у вас есть структурированные данные, но вы планируете выполнять большую часть своих хрустов, отношений и других операций на стороне сервера перед доставкой ответа API. Для любого пользовательского поведения на стороне клиента потребуется много шаблонов.