httpu.urlbuilder

Allows specifiying how an URL is built. In other words, allows you to customize how the params option in a $http request is converted to a queryString other than the default angular way. Gives you the foundation to implement jquery url builder and other backend specific serializations

Installation

Get it from bower or directly download it.

bower install --save angular-hu-urlbuilder

Add the dependency in the HTML

<script type="text/javascript" src="bower_components/angular-hu-urlbuilder/urlbuilder.js"></script>

Add the httpu.urlbuilder dependency to your App Module

angular.module('MyApp', ['httpu.urlbuilder']);

The huURLBuilderInterceptor and huURLBuilderFactory dependencies are now available

Usage

angular.module('MyApp')
//Add the interceptor that will make the serialization.
.config(function($httpProvider) {
  $httpProvider.interceptors.push('huURLBuilderInterceptor');
})
.factory('pirateBuildUrl', function(huURLBuilderFactory) {
  //this is how a `params` object is serialized
 //you must call the `addKeyValue` with *all* your final key, value pairs.
 //this serializer converts params to Pirate Language
 function pirateSerializer(params, addKeyValue) {
    //params is the $http request `params` option property
    angular.forEach(params, function(value, key) {
      addKeyValue('ARR' + key, value);
    });
  }

  return huURLBuilderFactory(pirateSerializer);
})
.run(function($http) {

  //Make a request
  $http.get('http://myapi.com/things', {
    params: {
      id: 5
    },
    //specify the url builder
    buildUrl: 'pirateBuildUrl'
  });
  // GET http://myapi.com/things?ARRid=5
});

Live Example

Use cases

LICENSE

The MIT License (MIT)

Copyright (c) 2015 Telefónica I+D - http://www.tid.es