NATS4 REST API Overview

From TMM Wiki
Revision as of 17:13, 11 March 2015 by Tmmtobias0185 (talk | contribs)
Jump to navigationJump to search

The NATS Admin API is accessible at http://<domain>/api/v1/<endpoint>/<item>

  • Replace <domain> with your NATS install domain name.
  • Replace <endpoint> with the resource endpoint that you are trying to access
  • Some of the resources do not require <item> in the url and all of the urls will be specified in the documentation

Gaining Access to the Admin API

In order to access NATS API your IP address must be in the ADMIN_API_ALLOWED_IPS list. You can add or remove IP addresses to this list via the Configurations Admin under the "Security" tab.

If you're also using ADMIN_IPS to restrict access to your admin, you must also add the IP to that list, as this is also an admin page.

Allowed HTTP Request Methods

  • GET
  • POST
  • PUT
  • PATCH

Authentication

The NATS REST API uses HTTP Header Authentication. Each REST API request requires the Affiliate username and the Affiliate API key to be sent with the HTTP headers of the request. To retrieve your API key simply select it from the login table of your NATS database or put in a support ticket and we can retrieve it for you. If you do not have an API key, you can set one by going to the Affiliates Admin and clicking the icon labeled, "Change API Key". Please note that only full admin accounts are authorized to use the API and set an API key.

Example Authentication

Authentication can be handled in various ways using different programming languages. Below are some complete example calls to the Ping endpoint with authentication.

  • NOTE The Ping endpoint does not require
<?
require_once('nusoap/lib/nusoap.php');

$url = 'http://nats.site.com/admin_api.php'; // change to be the domain of your NATS install
$username = 'NATSADMIN'; // your admin username
$apikey = '3385e1b470b0864e27a9b648da6c0692'; // your api key

$client = new nusoap_client($url.'?wsdl', true);
$client->setCredentials($username,$apikey);
// Check for an error
$err = $client->getError();
if ($err) {
    // Display the error
    echo 'Constructor error' . $err . "\n";
    exit; // At this point, you know the call that follows will fail
    
}


To give a complete example of this, here's an example using the ping function. This is how to call it:

<?
require_once('nusoap/lib/nusoap.php');

$url = 'http://nats.site.com/admin_api.php'; // change to be the domain of your NATS install
$username = 'NATSADMIN'; // your admin username
$apikey = '3385e1b470b0864e27a9b648da6c0692'; // your api key

$client = new nusoap_client($url.'?wsdl', true);
$client->setCredentials($username,$apikey);
// Check for an error
$err = $client->getError();
if ($err) {
    // Display the error
    echo 'Constructor error' . $err . "\n";
    exit; // At this point, you know the call that follows will fail
    
}
$result = $client->call('ping', Array(), 'natsapiadmin_wsdl');
var_dump($result);

And this is the output:

bool(true)