Trajectplanner API Documentatie
Laatst geupdate 17 mar. om 11:30
Inleiding
De Trajectplanner API biedt toegang tot informatie over studenten, studieonderdelen, semesters en tentamens binnen de Software Engineering (SE) studierichting. Deze documentatie beschrijft de beschikbare endpoints, de responses en hoe de API gebruikt kan worden.
Authenticatie
De API vereist geen authenticatie op dit moment, so handle with care.
De cijferadministratie kan gegevens invoeren en bijwerken met het studentnummer 'admin' en het wachtwoord 'admin'. Omdat wachtwoorden niet gehasht worden opgeslagen in de database, wordt aangeraden om eenvoudige wachtwoorden te gebruiken voor testdoeleinden.
Endpoints
1. Studenten ophalen
Endpoint:
GET /students
Response code: 200 OK
Beschrijving: Dit endpoint retourneert een lijst van alle studenten in de SE studierichting.
Endpoint:
GET /students/{id}
GET /students/{student_number}
Response code: 200 OK
Beschrijving: Dit endpoint retourneert informatie over een specifieke student op basis van de ID of studentnummer. In geval van studentnummer, gebruik dan dashes in the URL. Bijvoorbeeld: SE-1123-074 in plaats van SE/1123/074
2. Studenten toevoegen
Endpoint:
POST /students
Response code: 201 Created bij succesvolle toevoeging, 400 Bad Request bij foutieve invoer en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint voegt een nieuwe student toe op basis van de volgende vereiste velden:
- first_name (string, verplicht)
- last_name (string, verplicht)
- major (string, optioneel, moet zijn: SE, BI of NE in caps)
- cohort (int, optioneel, getallen van 1101 tot en met 1199)
- gender (string, verplicht, "M" of "F")
- password (string, verplicht, minimaal 4 tekens)
- birthdate (string, verplicht, formaat "YYYY-MM-DD")
3. Studenten updaten
Endpoint:
PUT /students
Response code: 200 OK bij een succesvolle update, 400 Bad Request bij foutieve invoer, 404 Not Found als de student niet bestaat en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint werkt een bestaande student bij. Minimaal student_id of student_number en één veld moet worden opgegeven om een update uit te voeren. De volgende parameters kunnen worden gebruikt:
- student_id (int, verplicht als student_number ontbreekt) - Identificeert de student.
- student_number (string, verplicht als student_id ontbreekt) - Alternatieve identifier, formaat "SE/1123/074".
- first_name (string, optioneel) - Voornaam van de student.
- last_name (string, optioneel) - Achternaam van de student.
- major (string, optioneel, moet zijn: SE, BI of NE in caps)
- cohort (int, optioneel, getallen van 1101 tot en met 1199)
- gender (string, optioneel) - Moet "M" of "F" zijn.
- password (string, optioneel) - Wachtwoord van minimaal 4 tekens.
- birthdate (string, optioneel) - Geboortedatum in het formaat "YYYY-MM-DD".
4. Studenten verwijderen
Endpoint:
DELETE /students
Response code: 200 Ok bij succesvolle toevoeging, 400 Bad Request bij foutieve invoer en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint verwijdert een student op basis van 1 van de volgende vereiste velden:
- student_id (int)
- student_number (string, uniek, formaat "SE/1123/074")
5. Semesters ophalen
Endpoint:
GET /semesters
Response code: 200 OK
Beschrijving: Dit endpoint retourneert een lijst van alle semesters binnen de SE opleiding.
6. Studieonderdelen ophalen
Endpoint:
GET /courses
Response code: 200 OK
Beschrijving: Dit endpoint retourneert een lijst van alle studieonderdelen binnen de SE opleiding.
Endpoint:
GET /courses/{id}
GET /courses/{course_code}
Response code: 200 OK
Beschrijving: Dit endpoint retourneert informatie over een specifieke onderdeel op basis van de ID of course code.
7. Tentamens ophalen
Endpoint:
GET /exams
Response code: 200 OK
Beschrijving: Dit endpoint retourneert een lijst van alle tentamens, inclusief de studenten die ze hebben gemaakt, de behaalde scores en het type toetsing (regulier of her).
Endpoint:
GET /exams/{id}
Response code: 200 OK
Beschrijving: Dit endpoint retourneert informatie over een specifieke tentamen op basis van de ID.
8. Tentamens toevoegen
Endpoint:
POST /exams
Response code: 201 Created bij succesvolle toevoeging, 400 Bad Request bij foutieve invoer en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint voegt een nieuw tentamen toe op basis van de volgende vereiste velden:
- course_id (int, verplicht als code ontbreekt)
- code (string, verplicht als course_id ontbreekt)
- exam_type (string, verplicht, "Regulier" of "Her")
- exam_date (string, optioneel) - formaat "YYYY-MM-DD" bv. 2025-12-31.
9. Tentamens updaten
Endpoint:
PUT /exams
Response code: 200 OK bij een succesvolle update, 400 Bad Request bij foutieve invoer, 404 Not Found als het tentamen niet bestaat en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint werkt een bestaand tentamen bij. Minimaal één veld moet worden opgegeven om een update uit te voeren. De volgende parameters kunnen worden gebruikt:
- exam_id (int, verplicht) - Identificeert het tentamen dat wordt bijgewerkt.
- code (string, optioneel) - De code van het onderdeel, optioneel, in geval die moet worden aangepast.
- exam_type (string, optioneel) - Moet "Regulier" of "Her" zijn.
- exam_datetime (string, optioneel) - formaat "YYYY-MM-DD HH:MM:SS" bv. 2025-12-31 13:04:23.
10. Tentamens verwijderen
Endpoint:
DELETE /exams
Response code: 200 OK bij succesvolle toevoeging, 400 Bad Request bij foutieve invoer en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint verwijdert tentamens op basis van de volgende vereiste velden:
- exam_id (int, verplicht)
11. Cijfers ophalen
Endpoint:
GET /scores
Response code: 200 OK
Beschrijving: Dit endpoint retourneert een lijst van alle behaalde cijfers, inclusief studentgegevens, onderdeelinformatie en het tijdstip waarop het cijfer is geregistreerd.
Endpoint:
GET /scores/{id}
Response code: 200 OK
Beschrijving: Dit endpoint retourneert informatie over een specifiek cijfer op basis van de ID.
Endpoint:
GET /scores/{student_number}
Response code: 200 OK
Beschrijving: Dit endpoint retourneert informatie over alle cijfers van een specifieke student op basis van de studentnummer. In geval van studentnummer, gebruik dan dashes in the URL. Bijvoorbeeld: SE-1123-074 in plaats van SE/1123/074
12. Cijfers toevoegen
Endpoint:
POST /scores
Response code: 201 Created bij succesvolle toevoeging, 400 Bad Request bij foutieve invoer en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint voegt een nieuw cijfer toe op basis van de volgende vereiste velden:
- student_id (int, verplicht als student_number ontbreekt) - Identificeert de student.
- student_number (string, verplicht als student_id ontbreekt) - Alternatieve identifier, formaat "SE/1123/074".
- exam_id (int, verplicht)
- score_value (double, verplicht) - Cijfer tussen 0.0 en 10.0.
- score_datetime (string, optioneel) - Formaat "YYYY-MM-DD HH:MM:SS" bv. 2025-12-31 13:04:23.
13. Cijfers updaten
Endpoint:
PUT /scores
Response code: 200 OK bij een succesvolle update, 400 Bad Request bij foutieve invoer, 404 Not Found als het cijfer niet bestaat en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint werkt een bestaand cijfer bij. Minimaal één veld moet worden opgegeven om een update uit te voeren. De volgende parameters kunnen worden gebruikt:
- score_id (int, verplicht) - Identificeert het cijfer dat wordt bijgewerkt.
- score_value (double, optioneel) - Nieuw cijfer tussen 0.0 en 10.0.
- score_datetime (string, optioneel) - Formaat "YYYY-MM-DD HH:MM:SS" bv. 2025-12-31 13:04:23.
14. Cijfers verwijderen
Endpoint:
DELETE /scores
Response code: 200 OK bij succesvolle verwijdering, 400 Bad Request bij foutieve invoer en 500 Internal Server Error bij een databasefout.
Beschrijving: Dit endpoint verwijdert een cijfer op basis van de volgende vereiste velden:
- score_id (int, verplicht)