iso-call
Isomorphic call API or RPC as Promise for any nodejs/express application.
![License](https://img.shields.io/badge/license-MIT-green.svg)
Installation
Server
npm install iso-call
Client
Use browserify + aliasify to bundle your application and iso-call for browser:
npm install browserify aliasify --save-dev
Add these into your package.json
to enable aliasify:
"browserify": {
"transform": ["aliasify"]
}
You may also use do more tricks with proper aliasify settings:
- hide api end points from users
- handle server side only logic
- handle client side only logic
- reduce bundle size
(TODO: add examples for these use case)
Usage
1. Enable Required ES Features
You should enable Promise and Object.assign() before using iso-call
in your application for both server and client.
require('babel/register')();
require('object.assign').shim();
require('es6-promise').polyfill();
2. Setup your API
You should setup all your API or RPC list only for server.
isocall = require('iso-call');
isocall.addConfigs({
yql: 'http://https://query.yahooapis.com/v1/public/yql',
graph: 'https://graph.facebook.com/v2.3/641060562',
connectdb: function (params) {
return mysqlPromise(params.host, params.port);
}
});
3. Setup middleware
You should setup middleware for express only at server side to wrap client side iso-call
.
var express = require('express');
var app = express();
isocall.setupMiddleware(app);
4. Call API or RPC!
Now you can do isomprphic RPC!!
isocall.execute('rpcName', rpcParams).then(function (R) {
}).catch(function (E) {
});
Or make isomorphic http request!!
isocall.request('apiName', requestParams).then(function (R) {
}).catch(function (R) {
});
Use Case: isomorphic RPC
Check our shell example to know more about isocall.execute().
Use Case: isomorphic http request
Check our YQL example to know more about isocall.request().
Use Case: deal with request by context
Checkout our Context example to know more about context based RPC which can access request by this
.