Molecular
Micro-library to make http request simply in the browser or with a NodeJs server.
Install
On nodejs
$ npm install molecularjs
On Bower
$ bower install molecularjs
Usage
With nodejs :
var Molecular = require('molecular');
Use Molecular like that
Molecular.connect({
'Github': 'https://api.github.com',
'Slack' : 'http://api.slack.com'
});
Molecular.to('Github').setOptions({
headers: {
'user-agent': 'ArthurMialon'
}
});
Molecular.to('Github').get('/users/arthurmialon/events')
.progress(function(req) {
console.log("request progress");
})
.success(function(data, req) {
console.log(data, req);
})
.error(function(err, req) {
console.log(err);
});
In a browser :
Use it almost like in nodejs :
You just have to import the file to your website
<script src="molecular.js"></script>
Molecular API
More doc coming soon...
.connections
See all your connections to APIs
.connect(apis)
Parameters :
Example :
Molecular.connect({
'Github': 'https://api.github.com',
'Slack' : 'https://api.slack.com'
});
.to(apiName)
Parameters :
Name |
Type |
apiName |
String |
@return |
Object |
Example :
.get(url, params)
Parameters :
Name |
Type |
url |
String |
params |
Object |
@return |
Callback Object |
Example :
Molecular.get('http://your/api/endpoints', {limit: 2, orderby: "id", sort: "desc"});
.post(url, data)
Parameters :
Name |
Type |
url |
String |
data |
Object |
@return |
Callback Object |
Example :
Molecular.post('http://your/api/endpoints', {});
.put(url, data)
Parameters :
Name |
Type |
url |
String |
data |
Object |
@return |
Callback Object |
Example :
Molecular.put('http://your/api/endpoints', {});
.delete(url)
Parameters :
Name |
Type |
url |
String |
@return |
Callback Object |
Example :
Molecular.delete('http://your/api/endpoints');
.setMethod(name callback)
Parameters :
Name |
Type |
name |
String |
callback |
Function |
Example :
Molecular.setMethod('methodName', function(arguments, callback) {
});
.setOptions(options)
Parameters :
Example :
Molecular.setOptions({
headers: {
"ContentType": "Application/json"
}
});
.sendRequest(method, path, data, options)
Parameters :
Name |
Type |
method |
String |
path |
String |
data |
Object / Boolean |
options |
Object |
@return |
Callback Object |
Example :
Molecular.sendRequest('GET', 'http://your/api/endpoint', false, {});
Advanced
You can simply add some methods to your connections
For example if I want to get the last commit from a specific repo (i.e: SailsJs)
Molecular.to('Github').setMethod('lasCommit', function(owner, repo, callback) {
this.get('/repos/'+owner+'/'+repo+'/commits')
.success(function(data) {
callback.apply(this, [false, data[0]]);
})
.error(function(err) {
callback.apply(this, [true, undefined]);
});
});
Molecular.to('Github').lasCommit('balderdashy', 'sails', function(err, commit) {
(err) ? console.error(err) : console.log(commit);
});
Next version 1.1
- Support http & https
- Better options management (JSON and default options etc...)
- Call en error if status code >= 200 & < 300 for http module nodejs
- Get the body response on error
- Fixes on POST/PUT request
- Fixes on options with xhr
- Minified version for bower
- Automatic JSON.parse on data