Question

Is it possible to work with Restangular with 2 different APIs? I would like to have setBaseUrl() for both.

Était-ce utile?

La solution

just create two or more Restangular service and config them as you want and inject your module which one you want to use...

UPDATE

this code from restangular github page

// Global configuration
app.config(function(RestangularProvider) {
   RestangularProvider.setBaseUrl('http://www.global.com');
   RestangularProvider.setRequestSuffix('.json');
});

//First Restangular Service
app.factory('FirstRestangular', function(Restangular) {
   return Restangular.withConfig(function(RestangularConfigurer) {
      RestangularConfigurer.setBaseUrl('http://www.first.com');
   });
});

//Second Restangular Service
app.factory('SecondRestangular', function(Restangular) {
   return Restangular.withConfig(function(RestangularConfigurer) {
      RestangularConfigurer.setBaseUrl('http://www.second.com');
   });
});

instead of global config (although you can still set global config for shared properties) create Restangular factories like these and inject them your controller...

// Let's use them from a controller
app.controller('MainCtrl', function(Restangular, FirstRestangular, SecondRestangular) {

  // GET to http://www.google.com/users.json
  // Uses global configuration
  Restangular.all('users').getList()

  // GET to http://www.first.com/users.json
  // Uses First configuration which is based on Global one, therefore .json is added.
  FirstRestangular.all('users').getList()

  // GET to http://www.second.com/users.json
  // Uses Second configuration which is based on Global one, therefore .json is added.
  SecondRestangular.all('users').getList()
});

Autres conseils

@wickY26 has the right answer, but I wanted to add something important.

If you are going to minify your code, you need to use inline annotation like so:

app.factory('FirstRestangular', [ 'Restangular', function(Restangular) {
   return Restangular.withConfig(function(RestangularConfigurer) {
      RestangularConfigurer.setBaseUrl('http://www.first.com');
   });
}]);

Note the square brackets.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top