Как настроить $resource для разных типов серверов
Нужно иметь три разных ресурсных фабрики $resource для разных типов серверов. По-сути это должны быть три варианта одного ресурса с разными настройками (напр., $resourceSQL, $resourceMongo и т.п.). Как это сделать?
P.S. Или можно сделать что-то типа $resource.SQL, $resource.Mongo, добавив методы подменяющие DEFAULT_ACTIONS |
или я чего то не понимаю, или по аналогии:
app .config(function( $interpolateProvider ) { $interpolateProvider.startSymbol( '[[' ).endSymbol( ']]' ); }) |
Цитата:
P.S. Restangular'е это выглядит так: // Restangular returns promises Restangular.one('users').getList() // GET: /users .then(function(users) { // returns a list of users $scope.user = users[0]; // first Restangular obj in list: { id: 123 } }) // Later in the code... // Restangular objects are self-aware and know how to make their own restful requests $scope.user.getList('cars'); // GET: /users/123/cars // You can also use your own custom methods on Restangular objects $scope.user.sendMessage(); // POST: /users/123/sendMessage // Chain methods together to easily build complex requests $scope.user.one('messages', 123).one('from', 123).getList('unread'); // GET: /user/123/messages/123/from/123/unread |
В общем, ничего лучше этого не придумал
//Обертка ресурса .factory('res', function ($resource) { return { sql: function (url, paramDefaults, actions) { var actionDefaults = { add: {method: 'PUT'}, query: {method: 'POST', isArray: true} } return $resource(url, paramDefaults, angular.extend(actionDefaults, actions)); }, mongo: function (url, paramDefaults, actions) { var actionDefaults = { add: {method: 'PUT'} } return $resource(url, paramDefaults, angular.extend(actionDefaults, actions)); } } }) .factory('Users', function (res) { return res.mongo('action.php/user/:userId', {userId: '@id'}) }) .factory('City', function (res) { return res.sql('action.php/city/:cityId', {cityId: '@id'}) }) |
т.е. у тебя в одном приложении два типа сервера. Правильно я понял?
|
Вопрос какую базу данных использовать не должен касаться клиента ни при каких условиях и никогда.
Сервер работает с базой данных и предоставляет rest api которым может пользоваться ресурс ангуляра, поэтому какая база используется это проблема исключительно сервера. Клиент не должен ничего знать о тонкостях взаимодействия с базой данных. Клиента не интересует также какая это именно база и существует ли она вообще. Все что глубже rest api для клиента является черным ящиком. Уж лучше бы нерв был прав и речь шла о двух серверах, тогда можно было бы как то попробовать оправдать такой косяк. Но если речь об одном сервере, то разделение между базами данных на клиенте нужно немедленно устранить и переложить эту задачу на серверную часть. З.Ы. Исключением мог бы быть только редактор баз данных работающий с различными типами баз данных. |
Цитата:
Цитата:
|
Цитата:
Откуда у тебя три сервера на один клиент, теряюсь в догадках )) |
Это не у меня, это на работе) https-сервер для авторизации, май-скюэль и монго сервера для текста и видео (много медиаконтента)
|
Часовой пояс GMT +3, время: 21:06. |