barryo edited this page Nov 25, 2014 · 9 revisions

From version 3.6 (2013-10-18), we introduced a basic semi-RESTful API which I'll (@barryo) refer to as APIv1 (or poor man's API).

API Calls for Administrators / SUPERUSERS

API Calls for Customer / Member Users

Public / Test API Calls

  • Hello World: index/hello

Getting Your API Key(s)

All API interactions are secured via per-user API keys that are only sent over HTTPS.

You can create / delete your key(s) by using the menu option My Account -> API Keys.

Background

This API is semi-RESTful in that it supports GET/POST requests and responds via HTTP status codes but it does not implement a full RESTful interface for all data objects.

The current primary motivators for this API are:

  • reduce reliance on the CLI based ixptool.php command as it often affects services on other machines requiring the use of ssh / RANCID / etc;
  • provide additional features for customers / members such as access to traffic graphs and statistics via a simple URL.

Technical Implementation

The API logic is implemented via a Zend Framework module called apiv1 (in retrospect, this is also how the CLI controller should have been implemented).

Shared functionality between the API, CLI and web frontend controllers are implemented as traits.

Example

You can see the additional of the API functionality as well as a proof of concept conversion of mailing list management from just CLI to both CLI and API by diffing between the tags v3.5.4 and v3.6.0.

If you want to reference files for the mailing list API, then look at:

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.