Skip to Content

API

Setiap route handler di src/app/api/**/route.ts menentukan metode, schema input, dan respons endpoint tersebut.

Endpoint menurut fungsi

KebutuhanRoute utama
Sesi dan akun/api/auth/register, /api/auth/login, /api/auth/logout, /api/me, /api/account/profile
Discovery/api/public/targets, /api/public/targets/[slug]
Target kandidat/api/candidate/targets, /api/candidate/targets/active, /api/candidate/targets/[targetId]/switch
Karya/api/candidate/works, /api/candidate/works/[workId], /api/candidate/works/[workId]/reuse
File/api/candidate/works/[workId]/resources/intents, /api/candidate/work-resources/[resourceId]/content
Pengajuan dan revisi/api/candidate/assessment-requests, /api/candidate/assessments/[assessmentId]/revisions
Penilai/api/verifier/assignments, /api/verifier/assignments/[assignmentId], /api/verifier/assessments/[assessmentId] dan subroute complete, request-revision, revoke
Proyek singkat/api/candidate/project-attempts, /api/candidate/project-attempts/[attemptId]/submit
Profil skill/api/candidate/skill-profile-shares, /api/candidate/skill-profile-shares/[shareId], /api/public/skill-profiles/resolve
Operasi perusahaan/api/company/positions, /api/company/action-queue, /api/company/members, /api/company/role
Outcome/api/candidate/outcomes, /api/outcomes/[outcomeId]/confirmations

Subroute posisi mengelola manifest, kandidat, penugasan, dan keputusan. Gunakan tabel ini sebagai peta, lalu periksa route sebelum membuat konsumen. Tabel ini tidak merinci seluruh payload.

Contoh baca publik

curl 'http://localhost:3000/api/public/targets?q=designer'

Respons hanya berisi posisi yang memang boleh dilihat publik. Endpoint publik tidak memberi akses ke draft atau data kandidat.

Saat memanggil command

Ikuti schema Zod pada handler yang dipanggil. Untuk command yang memerlukannya, teruskan cookie sesi, pemeriksaan origin, Idempotency-Key, dan baseVersion. Ambil versi dari respons terbaru, jangan membuat angkanya sendiri. Bentuk respons berbeda antar-endpoint.

Tampilkan kegagalan sebagai kegagalan, jangan membuat UI terlihat berhasil. Buka file privat hanya lewat route yang memeriksa izin. Resolver Profil skill menerima token di body POST dan mengirim status terbaru tanpa cache.

Last updated on