Afnemer API 3.0

Toelichting 3.0 API Afnemer

Hoe moet de token worden opgehaald?

Om een token op te vragen moet er een http POST van het type ”x-www-form-urlencoded” gedaan worden naar:

Voor non productie omgeving zoal bv. Acceptatie/Test:

https://keycloak.platformdst.nl/auth/realms/DST-NonProd/protocol/openid-connect/token

Productie:

https://keycloak.platformdst.nl/auth/realms/DST/protocol/openid-connect/token

Met de volgende parameters in:

  • username = [je eigen gebruikersnaam]
  • password = [je eigen wachtwoord]
  • client_id = dst3-api
  • grant_type = password

Een voorbeeld van een dergelijke aanroep in CURL:

curl –location –request POST ‘https://keycloak.platformdst.nl/auth/realms/DST-NonProd/protocol/openid-connect/token’ \

–header ‘Content-Type: application/x-www-form-urlencoded’ \

–data-urlencode ‘username=[replace with your username]’ \

–data-urlencode ‘password=[replace with your password]’ \

–data-urlencode ‘client_id=dst3-api’ \

–data-urlencode ‘grant_type=password’

In geval van een positief resultaat bevat de JSON een “access_token” welke gebruikt moet worden om de DST 3.0 API aan te roepen.

Vervolgens kan er met dit token een aanroep gedaan worden naar de DST 3.0 API.

De swagger:

De API 3.0 OpenAPI definitie documentie voor de test en productie omgeving zijn te vinden op:

Test:

https://dst3-api.test.platformdst.nl/api/docs/swagger-ui/index.html

Productie:

https://dst3-api.platformdst.nl/api/docs/swagger-ui/index.html

Er zijn verschillende OpenAPI definities beschikbaar, voor elke rol afzonderlijk. Deze zijn hieronder weergegeven en dienen in het “explore” veld te worden ingevoerd om de juiste docs te tonen. Deze zijn alleen toegankelijk voor gebruikers met de juiste rol.

/api/docs/customer 

Hoe krijg je producten?

Een voorbeeld van een aanroep om producten op te vragen in CURL is hieronder weergegeven:

Eerst moet je een token ophalen zoals eerder beschreven daarna kan je de volgende call uitvoeren 


curl –location –request GET ‘https://dst3-api.test.platformdst.nl/api/customer/product’ \

–header ‘Authorization: Bearer [replace with the access token value from previous token request]’

Voorbeeld:

https://dst3-api.platformdst.nl/api/customer/product?language=en

Hier wordt de taal als Engels opgegeven

De overige endpoints:

Om de endpoints te berijken moet je eerst de basis url voor de volgende aanroepen uit te voeren met in de header een geldige token zoals hierboven is voor gedaan.

/api/customer/product/count

Dit geeft als resultaat het getal van het aantal producten die jij mag zien en aan de ingevulde zoektermen voldoen.

De zoek termen zijn:

Language: de taal van het product,

supplierName: de code a supplier heeft bijvoorbeeld TREK,

countries: de landen vanuit het product je wilt zien. Een array van strings,

eanUpc: het ean upc nummer in het product,

itemNumber: het item number veld in het product,

statuses: de statussen waar het product in zit. Een array van strings,

productGroup: de artikelsubgroep tot waar het product toe behoord,

brand: het merk wat je vind in de general_productinformation,

keyword: het keyword veld wat in het product zit,

dateModified: de datum waarop het product als laatst in aangepast,

modifiedSince: de datum sinds het product als laatst in aangepast.

Alle input velden zijn niet case sensitive.

Al deze zoek termen zijn ook mogelijk in het product endpoint van hierboven.

/api/customer/codelists

Hier krijg je de code en naam terug van alle codelijsten die in DST aanwezig zijn.

/api/customer/codelist/{codelistCode}

Met de meegestuurde codelistCode krijg je een array terug van de waardes die in die codelijst tabel zitten

De multicustomer endpoints:

/api/customer/product/clean

Deze werkt precies hetzelfde als het endpoint: /api/customer/product

Met 2 kleine aanpassingen: 

1: De codelijst waardes in de versie van de internationalCode blijven staan en niet per taal gekeken wordt welke vertaling ernaast gezet

2: er word niet gekeken naar de autorisatie omdat het hier gaan om een multicustomer

/api/customer/authorization/gln

Als je de GLN in vult van een customer krijg je de autorisatie terug op de volgende manier:

Een array van:

gln,

supplierCode,

supplierName,

profileCode,

profileName,

customerCode,

customerName

/api/customer/all

Hier hoeft geen informatie mee gegeven te worden en je krijgt een array terug van alle customers