Dafne API
*Let op: deze API's zijn nog in ontwikkeling en de specificaties kunnen nog wijzigen.
Dafne (Dutch Alternative Fuel National Endpoint) is het systeem dat realtime data over alternatieve energie infrastructuur voor voertuigen ontvangt van leveranciers en beschikbaar stelt. Dit systeem staat ook bekend als NAP-EV.
Aansluiten
Om aan te sluiten op Dafne kan contact worden opgenomen met de NDW Servicedesk. Geef hierbij aan dat het gaat om het aansluiten op Dafne. Vervolgens zal er afgestemd worden hoe de verbinding wordt opgezet en zullen er aansluittesten uitgevoerd worden.
Tijdigheid
De aangeleverde data dient actueel te zijn. Dit wil zeggen dat wijzigingen binnen 1 minuut aangeleverd dienen te worden.
Aanleveren met OCPI-2.2.1
OCPI (Open Charge Point Interface) is een protocol dat communicatie tussen laadpuntoperators en dienstverleners mogelijk maakt en wordt onderhouden door de EVRoaming Foundation.
Voor levering aan Dafne, middels OCPI-2.2.1, zijn openapi-specificaties opgesteld voor de pull- en de push-functionaliteit (4.1.3 in OCPI-2.2.1), die aangeven welke informatie verwacht wordt middels welke endpoints.
Als aanvulling op OCPI-2.2.1 zijn, vanwege de AFIR, de volgende optionele elementen verplicht gemaakt in de openapi-specificaties:
Object | Element |
---|---|
Location | opening_times |
Location | energy_mix |
EVSE | parking_restrictions |
Connector | max_electric_power |
Connector | tariff_ids |
Pull
Om de volledige set van objecten en de laatste stand van individuele objecten te weten, worden deze periodiek (dagelijks) opgehaald middels de pull-functionaliteit. Hiervoor dient een server beschikbaar te zijn die conform de pull-API openapi-spec de huidige toestand levert als response op een GET
.
Pull - Locaties
Voor het aanleveren van de Locations dient een endpoint beschikbaar te zijn die luistert naar verzoeken voor zowel de volledige set, als ook specifieke locaties. Het ophalen van individuele EVSE- en Connector-objecten wordt vooralsnog niet gebruikt.
Pull - Tarieven
Voor het aanleveren van de Tariffs dient een endpoint beschikbaar te zijn die luisterd naar verzoeken voor de volledige set van tarieven.
Pull - Authenticatie
De credentials module van OCPI wordt niet gebruikt.
Voor het ophalen van de huidige toestand bij de leverancier dienen de authenticatie gegevens beschikbaar te worden gesteld. Deze zijn bij gebruik van OAuth2 een client-id
met client-secret
combinatie. Volgens de OAuth2 conventies zal de JWT worden doorgegeven via een Authorization: Bearer
header. Bij gebruik van een afgesproken token/api-key dient de access token/api-key in de Authorization: Token
header opgenomen te worden.
Push
Om wijzigingen van objecten door te geven binnen een minuut nadat deze hebben plaatsgevonden is er de push-functionaliteit. Hiervoor dient de client conform de push-API openapi-spec wijzigingen aan te leveren. Met PUT
worden volledige objecten bijgewerkt, terwijl middels PATCH
alleen geleverde elementen worden bijgewerkt. Alleen voor tarieven is het mogelijk om objecten te verwijderen met een DELETE
.
Methode | Omschrijving | Location | EVSE | Connector | Tariff |
---|---|---|---|---|---|
PUT | Update objecten | x | x | x | x |
PATCH | Update elementen van bestaande objecten | x | x | x | |
DELETE | Verwijder objecten | x |
Het is niet toegestaan om identifiers van objecten te veranderen. Denk hierbij aan een PUT
op een locatie met een parameter location_id
met waarde x
, terwijl het id-element van het object y
is.
Push - Locaties
Voor het bijwerken van een enkele locatie is het mogelijk om een PUT
of PATCH
uit te voeren op de Locations, EVSE en Connector objecten. Daarbij is alleen de last_updated
een verplicht element. Als er een sub-object benoemd wordt in een update dient dit sub-object volledig aanwezig te zijn (volgens de eisen van een PUT
voor dat soort object).
Push - Tarieven
Voor het bijwerken van een enkel tarief is het mogelijk om een PUT
uit te voeren op een Tariff-object. Voor het verwijderen van een tarief is het mogelijk om een DELETE
uit te voeren, welke een HTTP-204 status code teruggeeft bij succes (dit verschilt van de OCPI-specificatie).
Push - Authenticatie
De credentials module van OCPI wordt niet gebruikt.
Voor het leveren van de updates (push) worden een client-id
en client-secret
beschikbaar gesteld om mee te authentiseren met OAuth2. Volgens de OAuth2 conventies zal de JWT worden doorgegeven via een Authorization: Bearer
header.
Leverancier pull-API
Leverancier push-API
Servicedesk
Voor meer informatie kan contact opgenomen worden met de NDW Servicedesk.