API

From HNS.dev

Jump to: navigation, search

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.

contact us | terms and conditions Creative Commons License
© 2009 - Stichting Het Nieuwe Stemmen
THE DEVELOPMENT OF HNS.DEV WAS MADE POSSIBLE BY A CONTRIBUTION OF KNOWLEDGELAND THROUGH THE DIGITAL PIONEERS EPARTICIPATION ROUND REGULATION (WHICH WAS INITIATED BY THE MINISTRY OF THE INTERIOR AND KINGDOM RELATIONS). DIGITAL PIONIEERS GIVES FINANCIAL AND ORGANISATORIAL SUPPORT TO INNOVATIVE INTERNET INITIATIVES.