Цей проєкт є прикладом реалізації безпечного API на Node.js з використанням фреймворку Express. Він не зберігає жодних змін після закінчення роботи, оскільки використовує резидентну БД (IMDB), стандартні значення якої завантажуються під час кожного запуску.
Застосунок приймає HTTP-запити, звітує про події в консоль і виконує CRUD-операції з документами. Найголовніша його особливість --- це необхідність автентифікації для доступу до ресурсів і розмежування привілеїв звичайного користувача та адміністратора. Це надає безпеку та збереження конфіденційності даних.
- Склонуйте репозиторій і перейдіть до теки проєкту:
git clone https://github.com/Rulfam/secure-api-lab.git && cd secure-api-lab/- Установіть залежності:
npm install- Запустіть сервер:
npm start- Коли сервер запущено, відкрийте новий термінал у теці проєкту.
- Запустіть тестовий клієнт:
npm testДля доступу необхідно надати наступні заголовки:
X-Login--- Логін зареєстрованого користувача.X-Password--- Пароль зареєстрованого користувача.
| Метод і URL | Опис | Обов'язкові заголовки | Приклад тіла запиту | Можливі коди відповіді |
|---|---|---|---|---|
| GET /documents | Отримання списку всіх документів | X-Login, X-Password | --- | 200 OK, 401 Unauthorized |
| POST /documents | Створення нового документу | X-Login, X-Password | { "title": "Мій документ", "content": "..." } | 201 Created, 400 Bad Request, 401 Unauthorized |
| DELETE /documents/:id | Видалення документу за наданим ID | X-Login, X-Password | --- | 204 No Content, 401 Unauthorized, 404 Not Found |
| GET /employees | Отримання списку всіх працівників (вимагає роль адміністратора) | X-Login, X-Password | --- | 200 OK, 401 Unauthorized |
Публічний репозиторій доступний за цим посиланням.