Angular HTTP Utils
Angular $http utilities to deal with common problems when accessing backends
Use cases
You want to...
- httpu.caches: Save caches to localstorage to allow returning users to read from them; limit the amount of data stored instead of the number of requests; entries to expire after some time; compress the data to allow more request to be cached in the 5MB storage that the browsers are giving; resize your caches with new options for returning visitors.
- httpu.composite: Your app access several Backends, and have some backend specific interceptors (Authorization, error management...) for each one; You have interceptors that implements some plug&play feature, and belongs to a certain module; You download your templates from your server, and query a different API backend using several interceptors
- httpu.urlbuilder: You have a backend that doesn't understand the current param serialization from angular, and you have to code the serialized url directly in the url used for the request, losing the power of having it as a plain object.
- httpu.headers: Know the final URL used for your request (this may be computed by $http before leaving to $httpBackend) to delete cache entries, log them...; Wanna collect statistics information for your backend responses accessed over the worldwide clients; You wanna know if the request you performed hit your
$http
request cache. - httpu.cacherp: You have a backend that need variable request parameters, like oauth1 backends, and wanna cache those requests.
- httpu.oauth1: You have one or severals backends that need oauth1 signed request, with different configurations.
- httpu.retry: You have several retry strategies based on some backend specific errors.
Install
You can get it from Bower
bower install angular-hu-cacherp
bower install angular-hu-retry
bower install angular-hu-oauth1
bower install angular-hu-headers
bower install angular-hu-caches
bower install angular-hu-composite
bower install angular-hu-urlbuilder
Usage
After installing, HTTP Utils files will be available into a bower_components
folder, along with its dependencies.
<script type="text/javascript" src="bower_components/angular/angular.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-cacherp/cacherp.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-retry/retry.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-headers/headers.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-urlbuilder/urlbuilder.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-composite/composite.js"></script>
<script type="text/javascript" src="bower_components/oauth-signature-js/dist/oauth-signature.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-oauth1/oauth1.js"></script>
<script type="text/javascript" src="bower_components/lru-cache/lib/lru-cache.js"></script>
<script type="text/javascript" src="bower_components/angular-hu-caches/caches.js"></script>
Add the specific modules to your dependencies, or add the entire lib by depending on httpu
angular.module('myApp', ['httpu.caches', 'httpu.retry', 'httpu.oauth1', ...]);
Each one is now it's own module and will have a relevant README.md in their respective folders
Development
Single test
npm run test
Continuous testing
Will execute karma and watch the files to run the test on every save
npm run watch
Code coverage
npm run coverage
Coding guidelines
npm run lint
LICENSE
The MIT License (MIT)
Copyright (c) 2015 Telefónica I+D - http://www.tid.es