json-rpc.js

0.0.2 • Public • Published

JSON-RPC

A simple JavaScript library to create, parse and manage JSON-RPC 2.0 calls. This library may be particularly useful to use the JSON-RPC specification inconjunction with something like Socket.io.

For the JSON-RPC 2.0 specification, see: http://www.jsonrpc.org/specification

Pseudo code example for a JSON-RPC request:

// Client:
var request = JSON_RPC.Request(method, params);
var id = request.id;
request.toString(); // send to server

// Server:
var request = JSON_RPC.parse(request);
request.response = request.method(); // if successful
request.toString(); // return to client

// Back on Client:
var request = JSON_RPC.parse(request);
if (request.id == id) { // the request ID is maintained
    var response = request.response; // if successful
}

Notifications are handled similarly but without support for IDs or a response/error:

// Client:
var request = JSON_RPC.Notification(method, params);
request.toString(); // send to server

// Server:
var request = JSON_RPC.parse(request);
if (request.constructor === JSON_RPC.Notification) {
    // DO NOT reply to a Notification
    request.method();
}

Error handling for requests (not notifications) are handled like this:

// Server:
var request = JSON_RPC.parse(request);
if (request.error) request.toString(); // parse error, return to client

var response = request.method();
if (!reponse) { // hypothetical error scenario
    request.error = new JSON_RPC.Error(-1, "An error occurred");
} else {
    request.response = response;
}

request.toString(); // return to client

The JSON_RPC object also contains pre-rolled errors:

JSON_RPC.PARSE_ERROR
JSON_RPC.INVALID_REQUEST
JSON_RPC.METHOD_NOT_FOUND
JSON_RPC.INVALID_PARAMS
JSON_RPC.INTERNAL_ERROR

Package Sidebar

Install

npm i json-rpc.js

Weekly Downloads

0

Version

0.0.2

License

MIT

Last publish

Collaborators

  • oliver.moran