Authenticatie

De API maakt gebruik van JSON Web Tokens (JWT) voor authenticatie. Na een succesvolle login ontvangt de gebruiker een JWT token dat moet worden meegestuurd in de Authorization header (Bearer Token) voor alle beveiligde endpoints.

POST /api/auth/DashboardLogin

Authenticeert een gebruiker en retourneert een JWT token.

Parameters

username (required)
string
Gebruikersnaam voor authenticatie
password (required)
string
Wachtwoord voor authenticatie
{ "username": "John.Doe", "password": "wachtwoord123" }

📤 Response

200 OK Succesvolle authenticatie
{ "success": true, "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", "user": { "id": 16, "name": "John Doe", "role": "Recruiter" }, "expires": "2025-10-04T09:24:58.000Z" }
400 Bad Request Ongeldige credentials
{ "success": false, "error": "Invalid username or password" }

Dashboard APIs

Deze endpoints bieden data voor het dashboard.

GET /api/dashboard/operational-metrics

Haalt operationele metrics op, zoals het aantal aanbiedingen per recruiter per maand.

Headers

Authorization (required)
string
Bearer Token (JWT)

📤 Response

200 OK Succesvolle respons
[ { "month": "2025-06", "monthName": "Jun", "year": 2025, "recruiters": { "John Doe": 30, "Jane Smith": 8 }, "totalAanbiedingen": 38, "recruiterNames": ["John Doe", "Jane Smith"], "recruiterCounts": [30, 8] }, { "month": "2025-07", "monthName": "Jul", "year": 2025, "recruiters": { "John Doe": 7, "Jane Smith": 6 }, "totalAanbiedingen": 13, "recruiterNames": ["John Doe", "Jane Smith"], "recruiterCounts": [7, 6] } ]

GET /api/dashboard/candidates

Haalt een lijst met kandidaten op.

Headers

Authorization (required)
string
Bearer Token (JWT)

📤 Response

200 OK Succesvolle respons
[ { "id": 1, "name": "Candidate A", "status": "Active", "recruiter": "John Doe" }, { "id": 2, "name": "Candidate B", "status": "Interview", "recruiter": "Jane Smith" } ]

GET /api/dashboard/placements

Haalt een lijst met plaatsingen op.

Headers

Authorization (required)
string
Bearer Token (JWT)

📤 Response

200 OK Succesvolle respons
[ { "id": 101, "candidateName": "Candidate A", "company": "Company X", "date": "2025-09-15", "recruiter": "John Doe" }, { "id": 102, "candidateName": "Candidate C", "company": "Company Y", "date": "2025-08-20", "recruiter": "Jane Smith" } ]

GET /api/dashboard/recruiters

Haalt een lijst met recruiters en hun statistieken op.

Headers

Authorization (required)
string
Bearer Token (JWT)

📤 Response

200 OK Succesvolle respons
[ { "naam": "John Doe", "aanbiedingen": 30, "plaatsingen": 8, "conversieRatio": 26.67, "omzet": 45000 }, { "naam": "Jane Smith", "aanbiedingen": 15, "plaatsingen": 5, "conversieRatio": 33.33, "omzet": 32000 } ]

Jobs API

Dit endpoint biedt toegang tot vacaturegegevens.

GET /api/jobs

Haalt een lijst met beschikbare vacatures op.

Headers

Authorization (required)
string
Bearer Token (JWT)

📤 Response

200 OK Succesvolle respons
[ { "id": 201, "title": "Software Developer", "company": "Tech Solutions", "location": "Amsterdam", "recruiter": "John Doe" }, { "id": 202, "title": "UX Designer", "company": "Creative Agency", "location": "Utrecht", "recruiter": "Jane Smith" } ]