JavaScript SDK
De @topolab/sdk client voor Node en de browser — pagineren van OGC-items en downloaden van datasets, met GA-fetch en curl-equivalenten.
JavaScript SDK
@topolab/sdk is een getypte client voor de Topolab REST en OGC API's, bruikbaar vanuit Node en moderne browsers. Het verpakt feature-paginering en dataset-downloads achter een kleine op beloftes gebaseerde interface.
Preview — de officiële SDK is in preview. De REST en OGC API's die het verpakt zijn vandaag de dag algemeen beschikbaar; gebruik de REST/curl-equivalenten hieronder totdat de SDK wordt uitgebracht.
Installeren
npm install @topolab/sdk
Het pakket levert ES-modules en TypeScript-typen. Het maakt gebruik van het platform fetch, dus Node 18+ of elke moderne browser werkt zonder een polyfill.
Maak een client
Construeer een Client met jouw API-sleutel. De sleutel bevat jouw scope en add-ons — OGC feature-toegang vereist GIS_ACCESS, downloads vereisen API_ACCESS. Zie Authenticatie.
import { Client } from "@topolab/sdk";
const tl = new Client({ apiKey: "tlb_prod_..." });
Laad de sleutel vanuit de omgeving in plaats van deze in client-side bundles in te bedden:
import { Client } from "@topolab/sdk";
const tl = new Client({ apiKey: process.env.TOPOLAB_API_KEY });
Datasets worden aangesproken op hun table naam, bijvoorbeeld nl-domino-poi. Elke methode hieronder werkt op tl.dataset("<table>").
Door items pagineren
.items() vraagt de OGC API - Features items eindpunt voor een collectie en retourneert GeoJSON-features. Geef limit door om te pagineren en bbox om te filteren naar een bounding box (WGS84, [minLon, minLat, maxLon, maxLat]).
const fc = await tl.dataset("nl-domino-poi").items({
limit: 100,
bbox: [4.7, 52.2, 5.1, 52.5],
});
console.log(fc.features.length);
Dit vereist de GIS_ACCESS add-on. Het GA-equivalent is een directe oproep naar het OGC items eindpunt — zie Items en BBox en filtering:
curl -H "X-API-Key: tlb_prod_..." \
"https://api.topolab.nl/v1/ogc/collections/nl-domino-poi/items?limit=100&bbox=4.7,52.2,5.1,52.5"
const url = new URL(
"https://api.topolab.nl/v1/ogc/collections/nl-domino-poi/items"
);
url.searchParams.set("limit", "100");
url.searchParams.set("bbox", "4.7,52.2,5.1,52.5");
const res = await fetch(url, {
headers: { "X-API-Key": "tlb_prod_..." },
});
const fc = await res.json();
De respons is een standaard GeoJSON FeatureCollection; volg de next link in fc.links om te pagineren.
Download een dataset
.download(format) haalt een volledige export op en lost op naar een Blob (browser) of Buffer (Node) in elk ondersteund formaat: csv, json, geojson, kml, of shp.
const blob = await tl.dataset("nl-domino-poi").download("geojson");
Dit verbruikt credits en vereist API_ACCESS. Het GA-equivalent is een directe download van het format eindpunt — zie Bestanden downloaden:
curl -H "X-API-Key: tlb_prod_..." \
"https://api.topolab.nl/v1/dataset/nl-domino-poi/files/geojson" \
-o nl-domino-poi.geojson
const res = await fetch(
"https://api.topolab.nl/v1/dataset/nl-domino-poi/files/geojson",
{ headers: { "X-API-Key": process.env.TOPOLAB_API_KEY } }
);
const geojson = await res.json();
Houd downloads server-side: een sleutel die in browsercode is ingebed is blootgesteld aan elke bezoeker.
Fouten
De client wijst af met een getypte fout die de HTTP-status weerspiegelt:
| Status | Betekenis |
|---|---|
401 |
Ontbrekende of ongeldige API-sleutel. |
403 |
Sleutel mist GIS_ACCESS (items) of API_ACCESS (downloads). |
404 |
Onbekende collectie, table, of niet-ondersteund formaat. |
429 |
Rate limited — zie Rate limits & credits. |
Heb je een add-on nodig die geactiveerd moet worden, of wil je vroegtijdige toegang tot de SDK-preview? Neem contact met ons op.
Volgende
- Quickstart — jouw eerste verzoek van begin tot eind.
- BBox en filtering — ruimtelijke en attribuutfilters op items.
- Python SDK — dezelfde operaties voor data science.
Deze functionaliteit is in preview, de interface kan nog wijzigen.