Additional answers may be found in the getting started section about the Prime Infrastructure API, and in the tutorial.
The general structure of a request to the Prime Infrastructure API is as follows:
../webacs/api/v1/data/{RESOURCE-NAME}
This will list all instances of that resource. For example, ../webacs/api/v1/data/Devices will return a list of all Device instances in the system.
../webacs/api/v1/data/{RESOURCE-NAME}/{RESOURCE-ID}
This will return the unique instance identified by the given {RESOURCE-ID}. For example, ../webacs/api/v1/data/Devices/12412764 returns the "12412764" device.
Qualifiers may be added to use filtering, paging and sorting following this format:
../webacs/api/v1/data/{RESOURCE-NAME}?{operator-expression1}&{operator-expression2}...&{operator-expressionN}
Each operator expression may be a filtering criteria such as ipAddress="192.168.1.3", or a paging directive, or a sorting directive, such as .sort=-collectionTime.
Optionally, the .full=true qualifier may be added to return the full instance.
Additional RESTful services are available through the following URL pattern:
../webacs/api/op/{service-domain}/{service-resource}
For example, ../webacs/api/op/reportservice/templates provides a way to list all report templates that may be used to create reports.
The response to a request to the Prime Infrastructure API may be returned in one of two standard formats: XML or JSON. The format of the response may be specified in one of two ways:
../webacs/api/v1/data/Devices.json?ipAddress="192.168.8.9"returns a response in JSON format, whereas
../webacs/api/v1/data/Devices.xml?ipAddress="192.168.8.9"returns a response in XML format.
Accept: application/jsonreturns a response in JSON format, whereas
Accept: text/xmlreturns a response in XML format.
By default, when nothing is specified, the response format is set to be XML.
If you would like to cut down the latency of API requests, or improve throughput, you can try some of the following tips:
../webacs/api/v1/data/Devices?.nocount=trueDoing so will remove the "count," "first," and "last" attributes from the API response. However, the API will require one less query against the underlying data source, yielding a lower latency.
You're likely sending the "Connection: Keep-Alive" header. The API doesn't presently support persistent connections. So each time the header is sent a session is created for you. However, instead of cleaning up the session after a response is sent the session sticks around. In a recent version of Prime Infrastructure, we introduced a limit of 5 concurrent sessions per user. So these two things combined means that when your sixth request comes around it is denied with an HTTP 401. The workaround is to not send the "Connection: Keep-Alive" header or disable persistent connections in your client (for some clients, sending the "Connection: close" header in your request disables persistent connections).
If you sometimes receive HTTP 503 errors, but at other times receive a success response, you are being rate limited. The best thing to do in this case is to wait for a few seconds and try the same request again. For more details, please see our rate limiting documentation.