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
: toegekendeorgUnitId
bij aanmelding van de organisatieprogramId
: URL-geëncodeerde programId (dusopleiding 1
wordtopleiding%20
).clientId
: gebruik voor maatwerk opleidingen de orgUnitId van de afnemer zoals geregistreerd bij EDU-DEX (met URL-encoding, dusrio/stap
wordtrio%2Fstap
), en gebruikpublic
voor publiek toegankelijke opleidingen. In het eerste geval moet hetclientId
-element in de opleiding ook gevuld zijn met deorgUnitId
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": {}
}
}
]
}
-
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" } }' | 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
: toegekendeorgUnitId
bij aanmelding van de organisatieclientId
: gebruik hier deorgUnitId
van de afnemer zoals geregistreerd bij EDU-DEX (met URL-encoding, dusrio/stap
wordtrio%2Fstap
). HetclientId
-element in de korting moet ook gevuld zijn met deorgUnitId
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
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-afnemer
is nog aanwezig):curl -s 'https://api.edudex.nl/data/v1/suppliers/voorbeeld/discounts' \ -H "Authorization: Bearer $APITOKEN" | jq
Antwoord:
{ "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" | jq
Antwoord:
{ "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"
]
}