Web service API

From NetXMS Wiki
Revision as of 20:17, 26 September 2018 by Borgso (talk | contribs)
Jump to navigation Jump to search

Web service API provides access to NetXMS via HTTP/HTTPS. API calls are REST-like (although not purely RESTful) and uses JSON for data exchange.

Session Management

Login

POST /sessions

Create new session. Input object fields:

login password

On success server will set cookie session_handle which should be passed on each subsequent request.

Logout

DELETE /session/sid

Logout (delete session) with given session ID.


Object Management

Get Objects

GET /objects GET /objects?filter

Get all objects visible to logged in user. Optional filter can define additional criteria for object selection:

area=geographical_area

class=class_list

name=pattern

Examples

Get all objects with name starting with "T":

GET /objects?name=T*

Get all nodes around Riga:

GET /objects?class=node&area=57.0592,23.1647,56.8270,24.6025

Get all nodes and containers:

GET /objects?class=container,node

Get Specific Object

GET /objects/id


CURL Test

Test API with Curl

$ curl -X POST --data '{"login":"user","password":"pass"}' "http://localhost:8080/netxms-websvc/sessions"

{
  "sessionHandle": "8338e7f3-ba99-46c5-9fd6-84b38cc5d715",
  "session": {
    "server": {
      "address": "127.0.0.1",
      "version": "2.2.8",
      "color": "",
      "id": 3283229296059149299,
      "timeZone": "CET+02CEST"
    },
    "user": {
      "name": "user",
      "id": 8,
      "globalAccessRights": 825439032336
    },
    "encrypted": false,
    "objectsSynchronized": false,
    "passwordExpired": false,
    "zoningEnabled": false
  }
}

$ curl -X GET --cookie "session_handle=8338e7f3-ba99-46c5-9fd6-84b38cc5d715" "http://localhost:8080/netxms-websvc/objects?class=container,node"

.. prints some data ..

Java 10

If curl test works but grafana returns "Internal error" ({"description":"Internal error","error":46}")
Add "--add-modules java.xml.bind" to JAVA_OPTS in /etc/default/tomcat8