restful-mikrotik

0.0.3 • Public • Published

restful-mikrotik

A Restful API server for MikroTik RouterOS.

usage:

% npm install restful-mikrotik
var RestfulMikrotik = require('restful-mikrotik');
var api_server = new RestfulMikrotik({
  host: '10.0.0.1',
  user: 'admin',
  password: 'password',
  listen_port: 8080,
  listen_host: '127.0.0.1'
});
 
// api_server.stop(); // stop API server.

Constructor of RestfulMikrotik accept an object:

properties type default description
host str Router address
user str Router username
password str Router password
port int 8728 Router API port
tls bool/object false When true or object, tls will be enabled. See mikronode document for more infomation
listen_port int 8080 REST API server listen port
listen_host str 127.0.0.1 REST API server listen address

To query, send a GET request to API server:

% curl http://127.0.0.1:8080/ip/firewall/nat/print
[{".id":"*1","chain":"srcnat","action":"masquerade","out-interface":"ether1" .... 

To use command with parameters, POST a JSON object:

% curl http://127.0.0.1:8080/ip/address/comment -H 'Content-Type: application/json' -X POST -d '{"=numbers": 5, "=comment": "VPN"}'
[] 
# equivalent to "/ip address comment numbers=5 comment=VPN"

To query with condition, POST a JSON object:

% curl http://127.0.0.1:8080/ip/address/print -H 'Content-Type: application/json' -X POST -d '{"?interface": "ether1"}'
[{".id":"*2","address":"172.19.38.45/24","network":"172.19.38.0","interface":"ether1","actual-interface":"ether1","invalid":"false","dynamic":"true","disabled":"false"}]
# equivalent to "/ip address print where interface=ether1"

For more information about query/parameter, see mikrotik wiki.

TODO

  • (Real) TLS fix? - For whatever reason, connection using tls close itself after channel closed, maybe problem with mikronode?

Readme

Keywords

none

Package Sidebar

Install

npm i restful-mikrotik

Weekly Downloads

1

Version

0.0.3

License

MIT

Last publish

Collaborators

  • magicnat