Batch-synchronisatie van gegevens met de ReflexBlue Externe API V2
Wanneer te gebruiken
Gebruik batch-synchronisatie in de volgende situaties:
- Je ontvangt geen berichten via webhooks.
- Je processen staan een kleine vertraging toe tussen het moment waarop een entiteit (zoals een artikel, relatie of order) wordt toegevoegd of bijgewerkt in ReflexBlue en het verwerken van deze wijziging in het externe systeem.
- Je wilt een initiële set gegevens importeren in een extern systeem.
API-eindpunten voor batch-synchronisatie
Elke entiteit in ReflexBlue heeft een rijversienummer (of rowversion) eigenschap. Telkens als een entiteit wordt aangepast, krijgt deze een nieuwe rowversion. Dit werkt als een tijdstempel waarmee je eenvoudig kan bepalen welke gegevens zijn gewijzigd sinds een bepaald moment.
De ReflexBlue Externe API V2 biedt een /list eindpunt voor de meeste entiteiten die worden ondersteund. Met dit eindpunt kun je detailinformatie opvragen van entiteiten die zijn toegevoegd of gewijzigd sinds een bepaald rijversienummer. De resultaten worden automatisch gesorteerd op oplopende rijversienummer.
- Geef het rijversienummer op via het
filterobject in je HTTP-verzoek. - Je ontvangt alleen de entiteiten die zijn toegevoegd of gewijzigd sinds het opgegeven rijversienummer.
Bekijk de Swagger documentatie voor een overzicht van alle beschikbare /list eindpunten en technische details.
Gebruik
- Stuur een HTTP-verzoek naar het juiste
/listeindpunt. - Geef in de request body het rijversienummer op in het
filterobject. - Gebruik het
pageobject om het gewenste paginanummer op te geven. - Herhaal het verzoek voor volgende pagina’s totdat je alle gegevens hebt opgehaald.
Het antwoord bevat alle entiteiten die zijn toegevoegd of gewijzigd sinds het moment dat wordt aangegeven door het rijversienummer.
Initiële gegevens ophalen
Voor het ophalen van alle bestaande gegevens uit ReflexBlue (de initiële populatie) volg je deze stappen:
- Gebruik rijversienummer
0en paginanummer0in je eerste verzoek. - Herhaal het verzoek met oplopende paginanummers totdat er geen data meer wordt geretourneerd of het aantal entiteiten kleiner is dan de
pageSizein het antwoord.
Het onderstaande diagram laat het proces zien:
Voorbeeld: HTTP-verzoek voor het ophalen van artikelen via batch-synchronisatie.
POST https://jouw-bedrijf.reflex-blue.cloud.reflex-systems.nl/1/api/external/v2/articles/list
Content-Type: application/json
Accept: application/json; charset=utf-8
Authorization: Bearer <token>
x-rng-client-identifier: reflexblue.externalapi
{
"filter": {
"rowVersion": 0
},
"page": {
"number": 0
}
}
Het antwoord bevat een lijst met gegevens.
{
"pageSize": 100,
"data": [{...}, {...}, ...]
} Gegevens bijwerken in een extern systeem
Wil je na de initiële populatie de gegevens bijwerken? Volg dan deze stappen:
- Gebruik bij het eerste verzoek het hoogste rijversienummer dat je bij de vorige update hebt ontvangen.
- Begin altijd met paginanummer
0. Je ontvangt alle entiteiten die sinds de vorige update zijn toegevoegd of gewijzigd. - Blijf verzoeken sturen voor de volgende pagina’s totdat het aantal entiteiten kleiner is dan de
pageSizeof er geen data meer terugkomt.
Voorbeeld: HTTP-verzoek voor het bijwerken van artikelen vanaf rijversienummer 3567.
POST https://jouw-bedrijf.reflex-blue.cloud.reflex-systems.nl/1/api/external/v2/articles/list
Content-Type: application/json
Accept: application/json; charset=utf-8
Authorization: Bearer <token>
x-rng-client-identifier: reflexblue.externalapi
{
"filter": {
"rowVersion": 3567
},
"page": {
"number": 0
}
}
Gebruik altijd het hoogste ontvangen rijversienummer voor de volgende update, zodat je geen wijzigingen mist.