Mit der REST API des apt-shop können Sie den Shop fremdsteuern. Sie können sämtliche Daten abrufen, ändern oder hinzufügen. Sie haben somit die Möglichkeit, den Shop mit Anwendungen von Drittanbietern zu verknüpfen.

Generierung der API Key

Unter Einstellungen -> System -> API können Sie Ihre API-Keys verwalten und neue hinzufügen. Wählen Sie für jeden API-Key ein eigenes hashToken, das für die Erstellung der Signature benötigt wird. Geben Sie ebenso an, welche Operationen für diesen API-Benutzer erlaubt sind.

Standard Rückgabe

Es wird ein json-codiertes Array zurückgeben mit folgenden Werten:

ParameterWertBeschreibung
statussuccess/error/warningEin String über den Erfolg des Requests
warningsstring (optional)Hinweise, ob eine Warnung aufgetreten ist
errorsstring (optional)Hinweise, die den Fehler beschreiben
dataarraydie ressourcenspezifischen Daten

Generierung API-SIGNATURE

Die API-Signature generieren Sie für jeden Aufruf wie folgt:

Einen md5 Hash der Verkettung von URL . METHODE . HASH

md5($url.$method.$this->api_hash);

Beispiel Client Klasse PHP

Hier finden Sie eine Beispielkalsse für PHp die Sie einfach per Copy & Paste so verwenden können.

//API Client Test

class APIClient
{

	private $api_key;
	private $api_hash;
	private $api_url;
	private $httpcode;
	
	public function __construct($api_url,$api_key,$api_hash)
	{
		$this->api_url=$api_url;
		$this->api_key=$api_key;
		$this->api_hash=$api_hash;
	}
	
	/*Function to send HTTP POST Requests*/
	public function sendRequest($url, $method='GET', $data=array(),$params=array()){
	
		$urlparams = http_build_query($params);
		
		$request_url = $this->api_url.$url;
	
		if(strpos($url,'?')===false) $request_url.='?'.$urlparams;
		else $request_url.='&'.$urlparams;
	
		$urldata=explode('?',$url);
		$headers=array(
			'Content-Type: application/json; charset=utf-8',
			'Apt-Api-Key: '. $this->api_key,
			'Apt-Api-Signature: '.$this->createSignature($urldata[0], $method)
		);

		$ch = curl_init();
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
		curl_setopt($ch, CURLOPT_URL, $request_url);
		curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
		curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

		$response = curl_exec($ch);
		
		$this->httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		curl_close($ch);
		
		if(!$response){
			return false;
		}
		
		return json_decode($response,true);
	}

	public function get($url, $params = array()) {
        return $this->sendRequest($url, 'GET', array(), $params);
    }

    //create
    public function post($url, $data = array(), $params = array()) {
        return $this->sendRequest($url, 'POST', $data, $params);
    }

    //update
    public function put($url, $data = array(), $params = array()) {
        return $this->sendRequest($url, 'PUT', $data, $params);
    }

    public function delete($url, $params = array()) {
        return $this->sendRequest($url, 'DELETE', array(), $params);
    }
    
    private function createSignature($url,$method)
    {
   
    	return md5($url.$method.$this->api_hash);
    }
}

$api_key = 'mein_API_KEy';
$api_hash = 'mein_HASH_Token';
$api_url = 'https://www.example.de/api/v1/';

$t = new APICLient($api_url,$api_key,$api_hash);

//example to get the product width id 1
$result=$t->get('Products/1');