API Documentatie

Adresdata API aanroepen vanuit PHP

De Adresdata API is conceptueel zeer eenvoudig. Om deze aan te roepen vanuit PHP is maar één functie nodig. Hiermee kunnen alle mogelijkheden die in de API zitten, gebruikt worden. Zie hier een paar voorbeelden.

Dit voorbeeld haalt aanvullende adresgegevens op, op basis van een postcode en huisnummer:

$results = adresdata_request(
    'Vul hier je API key in',
    '/addresses',
    array(
        'postcode' => '3645DG',
        'number.full' => '51',
        'include' => 'city',
        'limit' => 1,
    )
);

Zo haal je op basis van een GPS locatie het dichtstbijzijnde adres op:

$results = adresdata_request(
    'Vul hier je API key in',
    '/addresses',
    array(
        'geometry' => 'wgs84',
        'include' => 'city',
        'near' => [52.1551985, 5.3866942],
        'limit' => 1,
    )
);
adresdata_request

De bovenstaande voorbeelden maken gebruik van de adresdata_request functie:


function adresdata_request($apiKey, $path, $arguments=array()) {

	foreach ($arguments as $name => &$argument) {
		if (is_array($argument)) {
			$argument = implode(',', $argument);

		} else if (is_object($argument)) {
			throw new Exception("Adresdata.net API error: Invalid argument passed to `$name`.");
		}
	}

	$queryArguments = http_build_query($arguments);

	$fullUrl = 'https://api.adresdata.net/'.
	            trim($path, '/').
	            ($queryArguments ? '?'. $queryArguments : '');
	
	$ch = curl_init();

	curl_setopt_array($ch, array(
		CURLOPT_URL => $fullUrl,
		CURLOPT_RETURNTRANSFER => true,
		CURLOPT_HTTPHEADER => array(
			'X-APIKEY: '. $apiKey,
		),
	));

	$result = curl_exec($ch);
	$error = curl_error($ch);
	$responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	curl_close($ch);

	$json = @json_decode($result);

	if (isset($json->error)) {
		throw new Exception("Adresdata.net API error: {$json->error}");
	}

	if ($error || $responseCode != 200) {
		throw new Exception("Adresdata.net API error: $responseCode: $error");
	}

	return $json->result;

}