Oefening 3 · API-basis

Ontdek toegankelijke klanten en valideer je vrije keuze

Gebruik connectionDivision om de lijst met toegankelijke divisions op te halen en controleer daarna of jouw targetDivision in die lijst voorkomt.

Waarom dit nodig is

De juiste beveiligingscheck is niet “is target gelijk aan CurrentDivision?”, maar “staat target tussen de administraties waar deze verbinding toegang toe heeft?”.

Plaats in de eindoplossing

Wat draagt deze oefening bij?

Hier wordt de vrije klantkeuze uit oefening 1 geautoriseerd. Na deze stap is targetDivision de gevalideerde doeladministratie voor alle financiële calls.

Wat gebeurt er technisch?

  • De URI voor system/Divisions mag connectionDivision gebruiken.
  • De response bevat meerdere toegankelijke divisions.
  • Je zoekt targetDivision op in die response en neemt de metadata van precies dat item over.
  • Alle volgende financiële endpoints gebruiken targetDivision, niet connectionDivision.
Doen én begrijpen

Bouwstappen met uitleg

Open workflow-editor
1

Roep /api/v1/{connectionDivision}/system/Divisions aan.

Waarom?
De session/default-division geeft je een geldige ingang naar de lijst met toegankelijke administraties.
Wat moet dit opleveren?
Een d.results-array met meerdere bedrijven.
2

Filter d.results op Division == targetDivision.

Waarom?
Dit is de echte toegangs-/bestaancheck voor de gekozen klant binnen het lab.
Wat moet dit opleveren?
Precies één klantobject als de keuze geldig is.
3

Bewaar targetName, LegalForm, Sector en AvailableYears uit het gevonden item.

Waarom?
Daarmee hoef je later niet opnieuw op namen te gokken en kun je het boekjaar valideren.
Wat moet dit opleveren?
De gekozen klantcontext bevat ID én leesbare metadata.
4

Stop alleen wanneer targetDivision niet in de toegankelijke lijst staat.

Waarom?
Dát is een geldige reden om de run te blokkeren; verschil met CurrentDivision is dat niet.
Wat moet dit opleveren?
Geldige divisions gaan door; bijvoorbeeld 999999 stopt duidelijk.
5

Voer dezelfde flow uit voor minimaal vier verschillende normale divisions.

Waarom?
De flow moet generiek zijn en dezelfde nodeketen voor iedere klant gebruiken.
Wat moet dit opleveren?
Vier verschillende targetName-resultaten zonder nodewijzigingen behalve invoer.

Wat gaat er mis als je dit overslaat?

Zonder lookup kun je een niet-toegankelijke of niet-bestaande division doorgeven. Met een te strenge CurrentDivision-check blokkeer je juist alle geldige alternatieve klanten.

GET

PowerLab-endpoint

Test met credential in n8n

Dit endpoint bootst het relevante deel van Exact Online, de AI-provider of de documentservice na. De /api/v1-routes gebruiken de Division-parameter en Exact-achtige paginering, maar PowerLab is geen volledige Exact-emulator.

https://powerlab.rmeijer.eu/api/v1/101001/system/Divisions
Authenticatie

Kies in de HTTP Request-node de opgeslagen Header Auth-credential PowerLab API. De sleutel hoeft je broertje niet te zien of in de workflow te plakken.

Extra endpoints en scenario’s

  • https://powerlab.rmeijer.eu/api/v1/101001/system/AllDivisions
Speel ermee

Varianten om zelf te proberen

Open vrije speeltuin

De bouwstappen hierboven zijn één mogelijke route, geen verplichte oplossing. Als jouw workflow hetzelfde resultaat veilig bereikt, is dat prima.

  • Selecteer 101002 en toon dat de rechtsvorm Eenmanszaak is.
  • Selecteer 101004 en toon dat de rechtsvorm VOF is.
  • Selecteer 101005 en toon dat de sector Holding is.
  • Probeer 999999 en maak een duidelijke foutmelding.
Vrije uitdaging

Bouw de selectie zo dat nergens een array-index zoals [0] bepaalt welke klant gekozen wordt. Alleen de match op targetDivision mag de doelklant bepalen.

Kun je uitleggen waarom?

Beantwoord deze vragen in je eigen woorden voordat je de oefening afrondt. Het doel is niet alleen de juiste nodes plaatsen, maar de ontwerpkeuzes kunnen verdedigen.

  1. Wat is nu de juiste beveiligingscheck voor targetDivision?
  2. Waarom gebruiken volgende financiële calls targetDivision?
  3. Wat doe je met een targetDivision die niet in de lijst voorkomt?

Klaar wanneer

Dezelfde workflow accepteert iedere toegankelijke targetDivision, verrijkt die met klantmetadata en weigert alleen onbekende/niet-toegankelijke IDs.