
Getting started voor aanbieders
In dit document wordt door middel van voorbeelden het gebruik van de JSON-API van EDU-DEX uitgelegd.
Authenticatie
Voor het gebruik van de API is een authenticatie-token vereist. Deze is aan te maken in de beheeromgeving van EDU-DEX via de applicatie "API-sleutels" en begint met 'secret-token:'.
Het authenticatie-token moet worden meegegeven in de HTTP-header Authorization als bearer-token:
Authorization: bearer APITOKEN
Daarnaast is er voor het beheer van een organisatie nodig te weten wat het organisatie-id ervan is. Deze orgUnitId wordt verstrekt
na inschrijving bij EDU-DEX.
Opzet van dit document
In dit document worden voorbeelden gegeven van het aanroepen van de verschillende API-calls. Hierbij wordt curl gebruikt om
de API-calls via een command line aan te roepen. Hierbij wordt ervan uitgegaan dat het token zich in een environment variable
genaamd APITOKEN bevindt. Daarnaast wordt in de voorbeelden 'voorbeeld' gebruikt als orgUnitId. jq is een utility die
kan worden gebruikt om de teruggegeven JSON-data leesbaar te formatteren.
Een aanroep om het token en connectivity met de API te testen, het ophalen van de lijst van organisaties:
curl -s 'https://api.edudex.nl/data/v1/suppliers' -H "Authorization: bearer $APITOKEN" | jq
Antwoord:
{
"suppliers": [
...
{
"id": "voorbeeld",
"name": {
"nl": "Voorbeeldorganisatie"
}
}
...
]
}
Uitgebreide interactieve documentatie van alle beschikbare API-calls is bereikbaar via SwaggerUI. Om de calls in SwaggerUI aan te kunnen roepen, kan het API-token worden ingesteld via de knop 'Authorize'.
Invoeren van opleidingen
-
Begin met het opstellen van de JSON-documenten. Deze moeten voldoen aan het JSON-schema voor opleidingen, dat te vinden is
bij de request body van de API-call
PUT /suppliers/{orgUnitId}/programs/{programId}/{clientId}.
-
Test documenten met de API-call
POST /validations/programs.
Zet het document in de data-property van de request body.
Voorbeeld van een valide programma:
curl -s -XPOST 'https://api.edudex.nl/data/v1/validations/programs' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"data": {
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"inPublication": true,
"lastEdited": "2023-12-01T12:34:56",
"programAdmission": {
"applicationOpen": true,
"applicationType": "individual",
"paymentDue": "up-front",
"startDateDetermination": "fixed starting date"
},
"programClassification": {
"degree": "Ad",
"orgUnitId": "voorbeeld",
"programDuration": { "years": 1 },
"programForm": [
"full-time"
],
"programId": "voorbeeld-opleiding",
"programLevel": "hbo",
"programLocation": [
{ "description": "Hoofdlocatie" }
],
"programType": "regular"
},
"programContacts": {
"contactData": []
},
"programCurriculum": {},
"programDescriptions": {
"programDescriptionText": {
"nl": "Deze opleiding dient als voorbeeld voor het gebruik van de EDU-DEX JSON API."
},
"programName": {
"nl": "Voorbeeldopleiding"
},
"programSummaryText": {
"nl": "Dit is een voorbeeldopleiding"
}
},
"programSchedule": {
}
}
}' | jq
Antwoord:
{
"validates": true,
"validationMessages": []
}
Als er validatiefouten zijn, staan de foutmeldingen in validationMessages, bijvoorbeeld:
{
"validates": false,
"validationMessages": [
{
"level": "error",
"forClient": null,
"message": "must have required property 'editor'",
"contextPath": "",
"ruleName": "json-schema",
"params": {
"missingProperty": "editor"
}
}
]
}
-
Gebruik voor invoeren van de opleiding de API-call
PUT /suppliers/{orgUnitId}/programs/{programId}/{clientId}.
Gebruik voor parameters de volgende waardes:
orgUnitId: toegekende orgUnitId bij aanmelding van de organisatie
programId: URL-geëncodeerde programId (dus opleiding 1 wordt opleiding%20).
clientId: gebruik voor maatwerk opleidingen de orgUnitId van de afnemer zoals geregistreerd bij EDU-DEX (met
URL-encoding, dus rio/stap wordt rio%2Fstap), en gebruik public voor publiek toegankelijke opleidingen. In het
eerste geval moet het clientId-element in de opleiding ook gevuld zijn met de orgUnitId van de client.
Voorbeeld van het toevoegen van de opleiding die hierboven is gevalideerd:
curl -s -XPUT 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/programs/voorbeeld-opleiding/public' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"inPublication": true,
"lastEdited": "2023-12-01T12:34:56",
"programAdmission": {
"applicationOpen": true,
"applicationType": "individual",
"paymentDue": "up-front",
"startDateDetermination": "fixed starting date"
},
"programClassification": {
"degree": "Ad",
"orgUnitId": "voorbeeld",
"programDuration": { "years": 1 },
"programForm": [
"full-time"
],
"programId": "voorbeeld-opleiding",
"programLevel": "hbo",
"programLocation": [
{ "description": "Hoofdlocatie" }
],
"programType": "regular"
},
"programContacts": {
"contactData": []
},
"programCurriculum": {},
"programDescriptions": {
"programDescriptionText": {
"nl": "Deze opleiding dient als voorbeeld voor het gebruik van de EDU-DEX JSON API."
},
"programName": {
"nl": "Voorbeeldopleiding"
},
"programSummaryText": {
"nl": "Dit is een voorbeeldopleiding"
}
},
"programSchedule": {
}
}' | jq
Antwoord:
{
"status": "ok",
"validationMessages": []
}
-
Het overzicht van ingevoerde opleidingen is te vinden op
GET /suppliers/{orgUnitId}/programs.
Het in het bovenstaande voorbeeld toegevoegde programma is nu terug te vinden in de lijst van opleidingen:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/programs' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"items": [
{
"orgUnitId": "voorbeeld",
"programId": "voorbeeld-opleiding",
"clientId": "public"
}
]
}
-
Gebruik voor het ophalen van ingevoerde opleidingen de API-call
POST /programs/bulk.
Ophalen van de gegevens van de opleiding voorbeeld-opleiding:
curl -s -XPOST 'https://api.edudex.nl/data/v1/programs/bulk' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"programs": [
{
"orgUnitId": "voorbeeld",
"programId": "voorbeeld-opleiding",
"clientId": "public"
}
]
}' | jq
Antwoord:
{
"programs": [
{
"programId": "voorbeeld-opleiding",
"orgUnitId": "voorbeeld",
"clientId": "public",
"error": null,
"data": {
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"inPublication": true,
"lastEdited": "2023-12-01T12:34:56",
"programAdmission": {
"applicationOpen": true,
"applicationType": "individual",
"paymentDue": "up-front",
"startDateDetermination": "fixed starting date"
},
"programClassification": {
"degree": "Ad",
"orgUnitId": "voorbeeld",
"programDuration": {
"years": 1
},
"programForm": [
"full-time"
],
"programId": "voorbeeld-opleiding",
"programLevel": "hbo",
"programLocation": [
{
"description": "Hoofdlocatie"
}
],
"programType": "regular"
},
"programContacts": {
"contactData": []
},
"programCurriculum": {},
"programDescriptions": {
"programDescriptionText": {
"nl": "Deze opleiding dient als voorbeeld voor het gebruik van de EDU-DEX JSON API."
},
"programName": {
"nl": "Voorbeeldopleiding"
},
"programSummaryText": {
"nl": "Dit is een voorbeeldopleiding"
}
},
"programSchedule": {}
}
}
]
}
Invoeren van kortingen op publieke opleidingen
-
Begin met het opstellen van de JSON-documenten. Deze moeten voldoen aan het JSON-schema voor kortingen, dat te vinden is
bij de request body van de API-call
PUT /suppliers/{orgUnitId}/discounts/{clientId}.
-
Test documenten met de API-call
POST /validations/discounts.
Zet het document in de data-property van de request body.
Voorbeeld van een valide korting:
curl -s -XPOST 'https://api.edudex.nl/data/v1/validations/discounts' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"data": {
"clientId": "afnemer",
"discount": [
{
"amount": "100",
"costType": "tuition fee",
"programId": ["voorbeeld-opleiding"]
},
{
"percentage": "10",
"costType": "examination",
"programId": ["voorbeeld-opleiding"]
}
],
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"lastEdited": "2023-12-01T12:34:56",
"orgUnitId": "voorbeeld"
}
}' | jq
Antwoord:
{
"validates": true,
"validationMessages": []
}
-
Voor invoeren van het document gebruik de API-call
PUT /suppliers/{orgUnitId}/discounts/{clientId}.
Gebruik voor parameters de volgende waardes:
orgUnitId: toegekende orgUnitId bij aanmelding van de organisatie
clientId: gebruik hier de orgUnitId van de afnemer zoals geregistreerd bij EDU-DEX (met URL-encoding, dus rio/stap
wordt rio%2Fstap). Het clientId-element in de korting moet ook gevuld zijn met de orgUnitId van de client.
Voorbeeld van het aanmaken van een korting voor een afnemer:
curl -s -XPUT 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts/afnemer' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"clientId": "afnemer",
"discount": [
{
"amount": "100",
"costType": "tuition fee",
"programId": ["voorbeeld-opleiding"]
},
{
"percentage": "10",
"costType": "examination",
"programId": ["voorbeeld-opleiding"]
}
],
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"lastEdited": "2023-12-01T12:34:56",
"orgUnitId": "voorbeeld"
}' | jq
Antwoord:
{
"status": "ok",
"validationMessages": []
}
-
Het overzicht van alle ingevoerde kortingen is te vinden via de API-call
GET /suppliers/{orgUnitId}/discounts.
Voorbeeld van deze call:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"items": [
{
"orgUnitId": "voorbeeld",
"clientId": "afnemer"
},
{
"orgUnitId": "voorbeeld",
"clientId": "andere-afnemer"
}
]
}
-
Gebruik voor het ophalen van ingevoerde kortingen voor een specifieke afnemener de API-call
GET /suppliers/{orgUnitId}/discounts/{clientId}.
Voorbeeld van de ingevoerde kortingen voor afnemer:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts/afnemer' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"clientId": "afnemer",
"discount": [
{
"amount": "100",
"costType": "tuition fee",
"programId": [
"voorbeeld-opleiding"
]
},
{
"percentage": "10",
"costType": "examination",
"programId": [
"voorbeeld-opleiding"
]
}
],
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"lastEdited": "2023-12-01T12:34:56",
"orgUnitId": "voorbeeld"
}
Verwijderen van gegevens
Begin met het opstellen van de JSON-documenten. Deze moeten voldoen aan het JSON-schema voor opleidingen, dat te vinden is
bij de request body van de API-call
PUT /suppliers/{orgUnitId}/programs/{programId}/{clientId}.
Test documenten met de API-call
POST /validations/programs.
Zet het document in de data-property van de request body.
Voorbeeld van een valide programma:
curl -s -XPOST 'https://api.edudex.nl/data/v1/validations/programs' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"data": {
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"inPublication": true,
"lastEdited": "2023-12-01T12:34:56",
"programAdmission": {
"applicationOpen": true,
"applicationType": "individual",
"paymentDue": "up-front",
"startDateDetermination": "fixed starting date"
},
"programClassification": {
"degree": "Ad",
"orgUnitId": "voorbeeld",
"programDuration": { "years": 1 },
"programForm": [
"full-time"
],
"programId": "voorbeeld-opleiding",
"programLevel": "hbo",
"programLocation": [
{ "description": "Hoofdlocatie" }
],
"programType": "regular"
},
"programContacts": {
"contactData": []
},
"programCurriculum": {},
"programDescriptions": {
"programDescriptionText": {
"nl": "Deze opleiding dient als voorbeeld voor het gebruik van de EDU-DEX JSON API."
},
"programName": {
"nl": "Voorbeeldopleiding"
},
"programSummaryText": {
"nl": "Dit is een voorbeeldopleiding"
}
},
"programSchedule": {
}
}
}' | jq
Antwoord:
{
"validates": true,
"validationMessages": []
}
Als er validatiefouten zijn, staan de foutmeldingen in validationMessages, bijvoorbeeld:
{
"validates": false,
"validationMessages": [
{
"level": "error",
"forClient": null,
"message": "must have required property 'editor'",
"contextPath": "",
"ruleName": "json-schema",
"params": {
"missingProperty": "editor"
}
}
]
}
Gebruik voor invoeren van de opleiding de API-call
PUT /suppliers/{orgUnitId}/programs/{programId}/{clientId}.
Gebruik voor parameters de volgende waardes:
orgUnitId: toegekendeorgUnitIdbij aanmelding van de organisatieprogramId: URL-geëncodeerde programId (dusopleiding 1wordtopleiding%20).clientId: gebruik voor maatwerk opleidingen de orgUnitId van de afnemer zoals geregistreerd bij EDU-DEX (met URL-encoding, dusrio/stapwordtrio%2Fstap), en gebruikpublicvoor publiek toegankelijke opleidingen. In het eerste geval moet hetclientId-element in de opleiding ook gevuld zijn met deorgUnitIdvan de client.
Voorbeeld van het toevoegen van de opleiding die hierboven is gevalideerd:
curl -s -XPUT 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/programs/voorbeeld-opleiding/public' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"inPublication": true,
"lastEdited": "2023-12-01T12:34:56",
"programAdmission": {
"applicationOpen": true,
"applicationType": "individual",
"paymentDue": "up-front",
"startDateDetermination": "fixed starting date"
},
"programClassification": {
"degree": "Ad",
"orgUnitId": "voorbeeld",
"programDuration": { "years": 1 },
"programForm": [
"full-time"
],
"programId": "voorbeeld-opleiding",
"programLevel": "hbo",
"programLocation": [
{ "description": "Hoofdlocatie" }
],
"programType": "regular"
},
"programContacts": {
"contactData": []
},
"programCurriculum": {},
"programDescriptions": {
"programDescriptionText": {
"nl": "Deze opleiding dient als voorbeeld voor het gebruik van de EDU-DEX JSON API."
},
"programName": {
"nl": "Voorbeeldopleiding"
},
"programSummaryText": {
"nl": "Dit is een voorbeeldopleiding"
}
},
"programSchedule": {
}
}' | jq
Antwoord:
{
"status": "ok",
"validationMessages": []
}
Het overzicht van ingevoerde opleidingen is te vinden op
GET /suppliers/{orgUnitId}/programs.
Het in het bovenstaande voorbeeld toegevoegde programma is nu terug te vinden in de lijst van opleidingen:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/programs' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"items": [
{
"orgUnitId": "voorbeeld",
"programId": "voorbeeld-opleiding",
"clientId": "public"
}
]
}
Gebruik voor het ophalen van ingevoerde opleidingen de API-call
POST /programs/bulk.
Ophalen van de gegevens van de opleiding voorbeeld-opleiding:
curl -s -XPOST 'https://api.edudex.nl/data/v1/programs/bulk' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"programs": [
{
"orgUnitId": "voorbeeld",
"programId": "voorbeeld-opleiding",
"clientId": "public"
}
]
}' | jq
Antwoord:
{
"programs": [
{
"programId": "voorbeeld-opleiding",
"orgUnitId": "voorbeeld",
"clientId": "public",
"error": null,
"data": {
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"inPublication": true,
"lastEdited": "2023-12-01T12:34:56",
"programAdmission": {
"applicationOpen": true,
"applicationType": "individual",
"paymentDue": "up-front",
"startDateDetermination": "fixed starting date"
},
"programClassification": {
"degree": "Ad",
"orgUnitId": "voorbeeld",
"programDuration": {
"years": 1
},
"programForm": [
"full-time"
],
"programId": "voorbeeld-opleiding",
"programLevel": "hbo",
"programLocation": [
{
"description": "Hoofdlocatie"
}
],
"programType": "regular"
},
"programContacts": {
"contactData": []
},
"programCurriculum": {},
"programDescriptions": {
"programDescriptionText": {
"nl": "Deze opleiding dient als voorbeeld voor het gebruik van de EDU-DEX JSON API."
},
"programName": {
"nl": "Voorbeeldopleiding"
},
"programSummaryText": {
"nl": "Dit is een voorbeeldopleiding"
}
},
"programSchedule": {}
}
}
]
}
-
Begin met het opstellen van de JSON-documenten. Deze moeten voldoen aan het JSON-schema voor kortingen, dat te vinden is bij de request body van de API-call
PUT /suppliers/{orgUnitId}/discounts/{clientId}. -
Test documenten met de API-call
POST /validations/discounts. Zet het document in dedata-property van de request body.Voorbeeld van een valide korting:
curl -s -XPOST 'https://api.edudex.nl/data/v1/validations/discounts' \ -H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d ' { "data": { "clientId": "afnemer", "discount": [ { "amount": "100", "costType": "tuition fee", "programId": ["voorbeeld-opleiding"] }, { "percentage": "10", "costType": "examination", "programId": ["voorbeeld-opleiding"] } ], "editor": "editor@voorbeeld.nl", "expires": "2030-01-01", "format": "1.0", "generator": "curl", "lastEdited": "2023-12-01T12:34:56", "orgUnitId": "voorbeeld" } }' | jqAntwoord:
{ "validates": true, "validationMessages": [] } -
Voor invoeren van het document gebruik de API-call
PUT /suppliers/{orgUnitId}/discounts/{clientId}. Gebruik voor parameters de volgende waardes:orgUnitId: toegekendeorgUnitIdbij aanmelding van de organisatieclientId: gebruik hier deorgUnitIdvan de afnemer zoals geregistreerd bij EDU-DEX (met URL-encoding, dusrio/stapwordtrio%2Fstap). HetclientId-element in de korting moet ook gevuld zijn met deorgUnitIdvan de client.
Voorbeeld van het aanmaken van een korting voor een afnemer:
curl -s -XPUT 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts/afnemer' \ -H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d ' { "clientId": "afnemer", "discount": [ { "amount": "100", "costType": "tuition fee", "programId": ["voorbeeld-opleiding"] }, { "percentage": "10", "costType": "examination", "programId": ["voorbeeld-opleiding"] } ], "editor": "editor@voorbeeld.nl", "expires": "2030-01-01", "format": "1.0", "generator": "curl", "lastEdited": "2023-12-01T12:34:56", "orgUnitId": "voorbeeld" }' | jqAntwoord:
{ "status": "ok", "validationMessages": [] } -
Het overzicht van alle ingevoerde kortingen is te vinden via de API-call
GET /suppliers/{orgUnitId}/discounts.Voorbeeld van deze call:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts' \ -H "Authorization: Bearer $APITOKEN" | jqAntwoord:
{ "items": [ { "orgUnitId": "voorbeeld", "clientId": "afnemer" }, { "orgUnitId": "voorbeeld", "clientId": "andere-afnemer" } ] } -
Gebruik voor het ophalen van ingevoerde kortingen voor een specifieke afnemener de API-call
GET /suppliers/{orgUnitId}/discounts/{clientId}.Voorbeeld van de ingevoerde kortingen voor
afnemer:curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts/afnemer' \ -H "Authorization: Bearer $APITOKEN" | jqAntwoord:
{ "clientId": "afnemer", "discount": [ { "amount": "100", "costType": "tuition fee", "programId": [ "voorbeeld-opleiding" ] }, { "percentage": "10", "costType": "examination", "programId": [ "voorbeeld-opleiding" ] } ], "editor": "editor@voorbeeld.nl", "expires": "2030-01-01", "format": "1.0", "generator": "curl", "lastEdited": "2023-12-01T12:34:56", "orgUnitId": "voorbeeld" }
Verwijderen van gegevens
Voor het verwijderen van gegevens wordt de POST-methode gebruikt. Calls die daarmee worden aangeroepen geven geen data
terug, maar bij een succesvolle verwijdering wordt de HTTP-statuscode 204 No Content teruggestuurd.
-
Voor het verwijderen van de kortingen gebruik de API-call
DELETE /suppliers/{orgUnitId}/discounts/{clientId}.Verwijderen van de korting voor
afnemer:curl -i -XDELETE 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts/afnemer' \ -H "Authorization: Bearer $APITOKEN"De korting wordt nu niet meer teruggegeven (alleen de korting voor de
andere-afnemeris nog aanwezig):curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts' \ -H "Authorization: Bearer $APITOKEN" | jqAntwoord:
{ "items": [ { "orgUnitId": "voorbeeld", "clientId": "andere-afnemer" } ] } -
Voor het verwijderen van de opleiding gebruik de API-call
DELETE /suppliers/{orgUnitId}/programs/{programId}/{clientId}.Verwijderen van de voorbeeldopleiding:
curl -i -XDELETE 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/programs/voorbeeld-opleiding/public' \ -H "Authorization: Bearer $APITOKEN"De opleiding wordt nu niet meer teruggegeven:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/programs' \ -H "Authorization: Bearer $APITOKEN" | jqAntwoord:
{ "items": [] }
Aanpassen van de metadata
-
Begin met het opstellen van de JSON-documenten. Deze moeten voldoen aan het JSON-schema voor instituutsgegevens, dat te
vinden is bij de request body van de API-call
PUT /suppliers/{orgUnitId}/metadata.
-
Test documenten met de API-call
POST /validations/institutes.
Zet het document in de data-property van de request body.
Voorbeeld van valide metadata:
curl -s -XPOST 'https://api.edudex.nl/data/v1/validations/institutes' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"data": {
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"instituteName": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
},
"lastEdited": "2023-12-01T12:34:56",
"orgUnitId": "voorbeeld"
}
}' | jq
Antwoord:
{
"validates": true,
"validationMessages": []
}
-
Gebruik voor het aanpassen van de metadata van de organisatie de API-call
PUT /suppliers/{orgUnitId}/metadata.
Let erop dat dit geen patch is, dus ook alle gegevens die niet zijn gewijzigd, moeten worden opgestuurd!
Voorbeeld van het toevoegen van een Engelse naam:
curl -s -XPUT 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/metadata' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"instituteName": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
},
"lastEdited": "2023-12-01T12:34:56",
"orgUnitId": "voorbeeld"
}' | jq
Antwoord:
{
"status": "ok",
"validationMessages": []
}
-
Gebruik voor het ophalen van de zelf ingevoerde metadata de API-call
GET /suppliers/{orgUnitId}/metadata.
Deze geeft de gegevens terug zoals ingevoerd.
De toegevoegde Engelse naam wordt nu teruggegeven:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"id": "voorbeeld",
"name": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
}
}
De uiteindelijke set van accreditaties (inclusief zoals ingevoerd in EDU-DEX door accreditaties kan worden bekeken via de
API-call GET /organizations/{orgUnitId}.
Hiermee worden ook de rollen van de afnemer teruggegeven:
curl -s 'https://api.edudex.nl/data/v1/organizations/voorbeeld' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"id": "voorbeeld",
"name": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
},
"roles": [
"supplier"
]
}
Begin met het opstellen van de JSON-documenten. Deze moeten voldoen aan het JSON-schema voor instituutsgegevens, dat te
vinden is bij de request body van de API-call
PUT /suppliers/{orgUnitId}/metadata.
Test documenten met de API-call
POST /validations/institutes.
Zet het document in de data-property van de request body.
Voorbeeld van valide metadata:
curl -s -XPOST 'https://api.edudex.nl/data/v1/validations/institutes' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"data": {
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"instituteName": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
},
"lastEdited": "2023-12-01T12:34:56",
"orgUnitId": "voorbeeld"
}
}' | jq
Antwoord:
{
"validates": true,
"validationMessages": []
}
Gebruik voor het aanpassen van de metadata van de organisatie de API-call
PUT /suppliers/{orgUnitId}/metadata.
Let erop dat dit geen patch is, dus ook alle gegevens die niet zijn gewijzigd, moeten worden opgestuurd!
Voorbeeld van het toevoegen van een Engelse naam:
curl -s -XPUT 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/metadata' \
-H "Authorization: Bearer $APITOKEN" -H 'Content-Type: application/json' -d '
{
"editor": "editor@voorbeeld.nl",
"expires": "2030-01-01",
"format": "1.0",
"generator": "curl",
"instituteName": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
},
"lastEdited": "2023-12-01T12:34:56",
"orgUnitId": "voorbeeld"
}' | jq
Antwoord:
{
"status": "ok",
"validationMessages": []
}
Gebruik voor het ophalen van de zelf ingevoerde metadata de API-call
GET /suppliers/{orgUnitId}/metadata.
Deze geeft de gegevens terug zoals ingevoerd.
De toegevoegde Engelse naam wordt nu teruggegeven:
curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"id": "voorbeeld",
"name": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
}
}
De uiteindelijke set van accreditaties (inclusief zoals ingevoerd in EDU-DEX door accreditaties kan worden bekeken via de
API-call GET /organizations/{orgUnitId}.
Hiermee worden ook de rollen van de afnemer teruggegeven:
curl -s 'https://api.edudex.nl/data/v1/organizations/voorbeeld' \
-H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{
"id": "voorbeeld",
"name": {
"en": "Example organisation",
"nl": "Voorbeeldorganisatie"
},
"roles": [
"supplier"
]
}