angular-resilient
Use $http as a resilient and failover HTTP client. This is a simple AngularJS service wrapper of the Resilient HTTP client that allows you to use all the $http
features, such as interceptors, caching, config options, mocking... but turning it into a failover, client-side balanced and powerful HTTP client
For further information about Resilient and how it works, see the project page and the JavaScript library
It works with Angular >= 1.0
Installation
Via Bower
bower install angular-resilient
Via Component
component install h2non/angular-resilient
Or loading the script remotely
<script src="//cdn.rawgit.com/h2non/angular-resilient/0.3.0/angular-resilient.js"></script>
Environments
- Chrome >= 5
- Firefox >= 3
- Safari >= 5
- Opera >= 10
- IE >= 9
Setup
Load the module as dependency of your application
var app = angular.module('app', ['ngResilient'])
Services
$resilient
Main service to creating new Resilient HTTP clients
app.factory('ResilientService', function ($resilient) {
return $resilient({
service: {
basePath: '/api/1.0'
},
discovery: {
servers: ['http://discover.api.me', 'http://discover.api.me']
}
})
})
Consuming the Resilient client
app.controller('ProfileCtrl', function (ResilientService) {
ResilientService.get('/user').then(function (res) {
// ...
}, function (err) {
// ...
})
})
API
For full featured API, please see the library documentation
Options param should be a valid $http options compatible object
$resilient([ options ])
options
params should be a valid Resilient options object
$resilient#get(path [, options])
Return: promise
$resilient#post(path [, options])
Return: promise
$resilient#put(path [, options])
Return: promise
$resilient#delete(path [, options])
Return: promise
$resilient#patch(path [, options])
Return: promise
$resilient#head(path [, options])
Return: promise
$resilient.use(middleware)
Register a middleware
$resilient.resilient
Type: Resilient
Expose the Resilient
API
$resilient#defaults
Type: object
Default Resilient
client options
Contributing
Wanna help? Cool! It will be appreciated :)
You must add new test cases for any new feature or refactor you do, always following the same design/code patterns that already exist
Development
Only node.js is required for development
Clone the repository
$ git clone https://github.com/h2non/angular-resilient.git && cd angular-resilient
Install dependencies
$ npm install
$ bower install
Generate browser bundle source
$ make browser
Run tests
$ make test
License
MIT © Tomas Aparicio