API
From HNS.dev
De query API kan gebruikt worden om data te zoeken en te bewerken in de database van HNS.dev. De API ondersteund selectqueries om data te zoeken, en insert-, update- en delete-queries om data te bewerken.
API aanroepen
De API wordt middels HTTP POST-verzoeken aangeroepen. De inhoud van de query wordt als body van de POST meegestuurd. Hierbij dient erop gelet te worden dat het Content-Type van het verzoek op text/xml gezet wordt. Het verzoek wordt gestuurd naar
http://dev.hetnieuwestemmen.nl/api/?user=gebruikersnaam&key=wachtwoord
De gebruikersnaam wordt door HNS.dev verstrekt. Het wachtwoord kan altijd hetzelfde zijn, of is een cryptografische handtekening van de inhoud van de query, gemaakt met de RSA private key die bij de gebruiker bekend is. Deze cryptografische handtekening dient als een hexadecimale string verstuurd te worden (zie onderstaand voorbeeld)
API aanroepen in PHP
Om de API aan te roepen in PHP kan bijvoorbeeld deze PHP-code gebruikt worden:
$ch = curl_init($url.'?user='.urlencode($username).'&key='.urlencode($key)) curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml')); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlIn); $xmlOut = curl_exec($ch); curl_close($ch);
Hierin is $url de URL van de API, $xmlIn de XML die de query beschrijft. De uitvoer komt in $xmlOut terecht.
Cryptografische handtekening in PHP
Om de cryptografische handtekening van een XML-opdracht te berekenen kan bijvoorbeeld deze PHP-code gebruikt worden:
$priv = openssl_get_privatekey(file_get_contents($privateKey)); openssl_sign($xmlIn, $key, $priv); openssl_free_key($priv); $key = reset(unpack('H*', $key));
$privateKey is de naam van het bestand dat de RSA private key bevat. De handtekening komt in $key te staan. Deze waarde kan vervolgens gebruikt worden in de aanroep van de API.

