Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

in het resultaat van de 1e API-call , in de response headers, staat een veld VR-Sequence. Dat is een oplopend versie nummer van de ontvangen events.

Bij het oproepen van de 2e API-call, waarbij je de waarde van een projectie opvraagt, kan je een parameter meegeven in de URL expectedSequence. Daarmee geef je aan dat je de waarde wil zien na het toepassen van (minstens) het event met het opgegeven nummer.

Wanneer de projectie nog niet is aangepast met de effecten van het opgegeven event, dan krijg je een response status 412 - precondition failed. In dat geval moet je even wachten en de call opnieuw proberen tot je een response status 200 - OK terug krijgt.

Wanneer je de parameter expectedSequence niet opgeeft, wordt steeds de op dat moment geldende waarde van de projectie meegegeven.

...

We willen situaties vermijden waarbij 2 beheerders eenzelfde vereniging tegelijkertijd aanpassen. Dat zou kunnen leiden tot een situatie waar de 2e beheerder de waarden van de 1e beheerder overschrijft. Om dit correct te laten verlopen, vragen we elke beheerder om gebruik te maken van

  1. de header waarde Etag in de response van de lees actie (GET)

    1. Dit geeft de huidige versie aan van de gezochte vereniging

  2. de header If-Match te gebruiken in de request van de schrijf-actie (PATCH, PUT, …)

    1. hiermee geef je aan dat je enkel wil aanpassen indien de huidige waarde nog steeds overeenkomt met de eerder opgevraagde versie

Wanneer de opgegeven waarde in If-Match nog steeds overeenkomt met de huidige versie van de vereniging, dan wordt het event verwerkt en krijg je een status code 202 of 200. In die response header staat het nieuwe versie nummer van de vereniging. Dit is nuttig wanneer je meerdere events na elkaar wil lanceren voor dezelfde vereniging.

Wanneer de opgegeven waarde in If-Match niet overeenkomt met de huidige versie van de vereniging, krijg je een status code 412 - precondition failed terug.

Note

Wanneer je de If-Match header niet gebruikt, wordt de waarde van de vereniging sowieso overschreven en loop je dus het risico van de waarden van andere beheerders te overschrijven.

...

Er wordt gecontroleerd op een stuk tekst dat begint met een < en eindigt op > (regex = ‘<.*?>’ ). Het resultaat wanneer dit toch geprobeerd wordt,  is een status 400 met foutboodschap “Deze waarde bevat niet toegestane tekens.”

Sorteren in beheer zoek

We hebben de sorteer parameter toegevoegd aan de beheer zoek, analoog aan de sorteer mogelijkheden van de publieke zoek.

Voorbeeld: sorteren op dalende volgorde van naam

Code Block
GET <BeheerURL>/v1/verenigingen/zoeken?q=*&sort=-naam

We kunnen de resultaten sorteren op vCode, naam, korteNaam, roepnaam, status, verenigingstype.code, verenigingstype.naam, doelgroep.minimumleeftijd en doelgroep.maximumleeftijd

Voor elk van deze sorteercriteria kan je zowel oplopen als aflopend sorteren: oplopend door de naam op te geven, aflopend door een - voor de veldnaam te plaatsen. vb sort=vCode, sort=-vCode

Je kan twee of meerdere zoekcriteria combineren waardoor er eerst op het eerste criterium gesorteerd wordt, en daarbinnen op het tweede, … vb sort=verenigingstype.code, naam

Standaard wordt er gesorteerd op aflopende volgorde van vCode (de meest recent aangemaakt vereniging staat dan als eerste)

Wanneer je een sorteercriterium opgeeft dat de volgorde niet uniek bepaalt (zoals bijvoorbeeld bij het sorteren op verenigingstype.code, dan worden de resultaten steeds op het laagste niveau nog eens gestorteerd op aflopende volgorde van vCode. vb: Sort=verenigingstype.code zal hetzelfde resultaat geven dan sort=verenigingstype.code,-vCode

Bij het sorteren op tekstvelden, negeren we enkele verschillen in schrijfwijze:

  • hoofdletter ongevoelig ( A = a, B = b, …)

  • accent ongevoelig (é = è = ê = ë = e, à = â = ä = a, …)

  • puntjes worden weggewerkt (a.b.c = abc)

  • leading spaces (zodat “ AAA” voor “ZZZ” komt)