A really, really simple JSON-RPC 2.0 client.
npm install --save node-jsonrpc-client
# Or
yarn add node-jsonrpc-client
const { JsonRpc } = require("node-jsonrpc-client");
// Our API server is at http://example.org/api
const client = new JsonRpc("http://example.org/api");
// Let's call the 'saySomething' method that takes two parameters, 'to' and 'message'
client.call("saySomething", { to: "Alice", message: "Hi, Bob!" })
.then((result) => {
// The 'saySomething' method has a field 'output'
console.log("output", result.output);
})
.catch((err) => {
// oops, something went wrong!
console.error("Oops! Error code " + err.code + ": " + err.message);
});
If the API is using a cookie to keep track of the session, you can use setUseCookies(true)
:
const { JsonRpc } = require("node-jsonrpc-client");
const CookieJar = require('tough-cookie')
const cookieJar = new CookieJar()
// Our API server is at http://example.org/api
const client = new JsonRpc("http://example.org/api");
// Let's call the 'login' method that takes two parameters, 'username' and 'password'
client.call("login", { username: "alice", password: "monkey" }, cookieJar)
.then((loginResult) => {
// The 'getMessages' method has a field 'messages' and requires the cookie from login
client.call("getMessages", {}, cookieJar).then((msgResult) => {
console.log("Messages: ", result.messages);
});
})
.catch((err) => {
// oops, something went wrong!
console.error("Oops! Error code " + err.code + ": " + err.message);
});