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;
}