Voorbeelden
Codevoorbeelden & Integraties
Praktische voorbeelden in verschillende programmeertalen. Kopieer, plak en pas aan voor uw eigen project.
Modern JavaScript met fetch API en async/await.
Basis Request
Eenvoudig gebouw ophalen met BAG ID.
// Gebouw ophalen op BAG ID
const API_KEY = process.env.OPENDATAAPI_KEY;
const BAG_ID = '0363100012168052';
async function getBuilding(bagId) {
const response = await fetch(
`https://api.opendataapi.nl/v1/buildings/${bagId}`,
{
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
}
);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
}
// Gebruik
const building = await getBuilding(BAG_ID);
console.log(`Bouwjaar: ${building.bouwjaar}`);
console.log(`Oppervlakte: ${building.oppervlakte} m²`);Zoeken op Adres
Gebouwen zoeken op postcode en huisnummer.
// Zoeken op adres
async function searchBuildings(postcode, huisnummer) {
const params = new URLSearchParams({
postcode,
huisnummer,
limit: '10'
});
const response = await fetch(
`https://api.opendataapi.nl/v1/buildings/search?${params}`,
{
headers: {
'Authorization': `Bearer ${API_KEY}`
}
}
);
const data = await response.json();
return data.results;
}
// Voorbeeld: zoek gebouw op Dam 1, Amsterdam
const results = await searchBuildings('1012JS', '1');
console.log(`Gevonden: ${results.length} gebouwen`);Met Error Handling
Complete implementatie met foutafhandeling.
class OpenDataApiClient {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseUrl = 'https://api.opendataapi.nl/v1';
}
async request(endpoint, params = {}) {
const url = new URL(`${this.baseUrl}${endpoint}`);
Object.entries(params).forEach(([key, value]) => {
url.searchParams.append(key, value);
});
const response = await fetch(url, {
headers: {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
}
});
if (response.status === 401) {
throw new Error('Ongeldige API key');
}
if (response.status === 429) {
throw new Error('Rate limit bereikt');
}
if (!response.ok) {
throw new Error(`API Error: ${response.status}`);
}
return response.json();
}
getBuilding(bagId) {
return this.request(`/buildings/${bagId}`);
}
searchBuildings(params) {
return this.request('/buildings/search', params);
}
getBuildingsInBbox(minLat, minLon, maxLat, maxLon) {
return this.request('/buildings/bbox', {
minLat, minLon, maxLat, maxLon
});
}
}
// Gebruik
const client = new OpenDataApiClient(API_KEY);
const building = await client.getBuilding('0363100012168052');Best Practices
Tips voor productie
Aanbevelingen voor het gebruik van de API in productie-omgevingen.
Implementeer retry logica
Voeg exponential backoff toe voor het afhandelen van tijdelijke fouten en rate limits.
Cache responses
Gebouwdata verandert niet vaak. Cache responses om API calls te besparen.
Server-side requests
Maak API calls altijd vanaf uw server, nooit direct vanuit de browser.
Monitor uw gebruik
Houd uw API gebruik bij om onverwachte kosten of rate limits te voorkomen.
Meer nodig?
Bekijk de volledige endpoint referentie of neem contact op voor ondersteuning.