2.2.1 • Published 5 years ago

@etk/jsonrpc v2.2.1

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

JsonRpc

Build Status npm version Code Climate

Schema

{
	"version": string,
	"id": number,
	"resource": string,
	"method": string,
	"params": Object,
	"result": *,
	"error": {
		"code": string,
		"message": string
	}
}

Usage

New request

const JR = require("@etk/jsonrpc");
const jr = new JR;
const request = jr.Request();
request.setResource('someResource').setMethod('methodName').setParams({'param1' : 'paramValue'});
console.log(request.toString());
// {"version":"1.2.0","id":1,"resource" : "someResource","method":"methodName","params":{"param1":"paramValue"}}

equals to

const JR = require("@etk/jsonrpc");
const jr = new JR;
const request = jr.Request({
	resource : 'someResource',
	method : 'methodName',
	params : {param1 : 'paramValue'}
});
console.log(request.toString());
// {"version":"1.2.0","id":1,"resource" : "someResource","method":"methodName","params":{"param1":"paramValue"}}

New response

with result

const JR = require("@etk/jsonrpc");
const jr = new JR;
const response = jr.Response();
response.setId(1).setResult('someResult');
console.log(response.toString());
// {"version":"1.2.0","id":1,"result":"someResult"}

equals to

const JR = require("@etk/jsonrpc");
const jr = new JR;
const request = jr.Request({
	id : 1,
	result : 'someResult'
});
console.log(request.toString());
// {"version":"1.2.0","id":1,"result":"someResult"}

with error

const JR = require("@etk/jsonrpc");
const jr = new JR;
const response = jr.Response({
	id : 1,
	error : {
		code : "ERR_CODE",
		message : 'Error message'
	}
});
console.log(response.toString());
// {"version":"1.2.0","id":1,"error":{"code":"ERR_CODE","message":"Error message"}}

equals to

const JR = require("@etk/jsonrpc");
const jr = new JR;
const response = jr.Response();
response.setId(1).setError({
	code : "ERR_CODE",
	message : 'Error message'
});
console.log(response.toString());
// {"version":"1.2.0","id":1,"error":{"code":"ERR_CODE","message":"Error message"}}

equals to

const JR = require("@etk/jsonrpc");
const jr = new JR;
const response = jr.Response({
	id : 1,
	error : {
		code : "ERR_CODE",
		message : 'Error message'
	}
});
console.log(response.toString());
// {"version":"1.2.0","id":1,"error":{"code":"ERR_CODE","message":"Error message"}}

New notification

const JR = require("@etk/jsonrpc");
const jr = new JR;
const notification = jr.Notification();
notification.setResource('someResource').setMethod('methodName').setParams({'param1' : 'paramValue'});
console.log(notification.toString());
// {"version":"1.2.0","resource" : "someResource","method":"methodName","params":{"param1":"paramValue"}}

equals to

const JR = require("@etk/jsonrpc");
const jr = new JR;
const notification = jr.Notification({
	resource : 'someResource',
	method : 'methodName',
	params : {param1 : 'paramValue'}
});
console.log(notification.toString());
// {"version":"1.2.0","resource" : "someResource","method":"methodName","params":{"param1":"paramValue"}}

Parse message

const JR = require("@etk/jsonrpc");
const jr = new JR;
const notification = jr.parse('{"version":"1.2.0","resource" : "someResource","method":"methodName","params":{"param1":"paramValue"}}');
console.log(notification.toString());
// {"version":"1.2.0","resource" : "someResource","method":"methodName","params":{"param1":"paramValue"}}

Callbacks

const JR = require("@etk/jsonrpc");
const jr = new JR;
const request = jr.Request();
request.setMethod('someMethod');
request.setCallback((err, res) => {
	if(err) {
		console.log('Got error: ' + err.message);
		return;
	}
	console.log('Got response for message #' + request.getId());
	console.log(res);
});
console.log("Request", request);

const response = jr.Response();
response.setId(request.getId());
response.setResult({some : 'result'});
console.log("Response", response);

// Callback will fire automagicaly after response is parsed
jr.parse(response.toString());

output

Request JsonRpcRequest {
  message: 
   { version: '1.2.0',
     id: 1,
     resource: '__global__',
     params: {},
     method: 'someMethod' } }
     
Response JsonRpcResponse {
  message: { version: '1.2.0', id: 1, result: { some: 'result' } } }

Got response for message #1
JsonRpcResponse {
  message: { version: '1.2.0', id: 1, result: { some: 'result' } } }

JSONLess

JSONLess allows non-primitives values like Date or MongoDB ObjectID to be transfered over JSON See JSONLess github.io pages for mor info

Docs

See github.io pages

2.2.1

5 years ago

2.2.0

6 years ago

2.1.3

6 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.3

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.3.3

8 years ago

1.3.2

8 years ago

1.3.1

8 years ago

1.3.0

8 years ago

1.2.11

8 years ago

1.2.10

8 years ago

1.2.9

9 years ago

1.2.8

9 years ago

1.2.7

9 years ago

1.2.6

9 years ago

1.2.5

9 years ago

1.2.4

10 years ago

1.2.3

10 years ago

1.2.2

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago

1.0.0-rc1

10 years ago

0.1.0

10 years ago