rmdb_api — это серверная часть курсового проекта, реализующая полноценный REST API для работы с удалённой базой данных SQLite3. API построен на Node.js и Express.js и предназначен для обеспечения данными клиентские приложения (например, интернет-магазин или складскую систему).
Проект представляет собой серверное приложение, которое предоставляет единый интерфейс для управления данными интернет-магазина через HTTP-запросы. Вместо прямого подключения к базе данных клиенты обращаются к этому API, что повышает безопасность и централизует логику работы с данными.
Основная цель:
- Создать надёжный бэкенд для хранения и обработки данных интернет-магазина.
- Предоставить клиентским приложениям (мобильным и десктопным) унифицированный API для работы с товарами, заказами, пользователями и категориями.
API поддерживает полный набор CRUD-операций для основных сущностей интернет-магазина:
- Управление товарами (
/products): получение списка (с категориями), поиск по категории, добавление, редактирование, удаление. Специальные методы для изменения количества по штрих-коду. - Управление категориями (
/categories): стандартные операции с категориями товаров. - Управление пользователями (
/users): получение, добавление, обновление и удаление пользователей. - Управление заказами (
/orders): создание, получение списка с деталями, обновление статуса, удаление. - Управление статусами (
/statuses): работа со справочником статусов заказов. - Администрирование (
/admin): регистрация и аутентификация администраторов. - Восстановление пароля (
/reset-password): запрос кода подтверждения на email и его верификация.
- Язык: JavaScript (100% кода)
- Среда выполнения: Node.js
- Фреймворк: Express.js
- База данных: SQLite3
- Протокол: HTTP (REST API)
- Платформа для деплоя: Vercel (указано в описании)
Эти инструкции помогут вам развернуть копию проекта на локальной машине для разработки и тестирования.
- Node.js (скачать с официального сайта)
- npm (менеджер пакетов, устанавливается вместе с Node.js)
- Любая операционная система, поддерживающая Node.js
- Стабильное подключение к интернету
- Клонируйте репозиторий
git clone https://github.com/filincprt/rmdb_api.git
- Перейдите в директорию проекта
cd rmdb_api - Установите зависимости
(Все необходимые зависимости указаны в файле
npm install
package.json) - Настройте базу данных
- В репозитории уже есть файлы базы данных:
DATABASE_IS_SERVER.db(готовая БД) иDATABASE_IS_SERVER.db.sql(дамп для создания). Убедитесь, что путь к БД вserver.jsуказан корректно.
- В репозитории уже есть файлы базы данных:
- Запустите сервер
Сервер будет запущен на порту, указанном в коде (обычно 3000 или другой). Вы должны увидеть сообщение о успешном запуске.
node server.js
API доступен по базовому URL (локально: http://localhost:3000). Все запросы и ответы передаются в формате JSON.
| Метод | Путь | Описание |
|---|---|---|
| Пользователи | ||
| GET | /users |
Получение данных из таблицы Users |
| POST | /users |
Добавление данных в таблицу Users |
| PUT | /users/:id |
Обновление данных в таблице Users |
| DELETE | /users/:id |
Удаление данных из таблицы Users |
| Товары | ||
| GET | /products |
Получение всех товаров с названиями категорий |
| GET | /products/:id |
Получение информации о товаре по id |
| GET | /products/category/:category_id |
Получение товаров по категории с названиями категорий |
| POST | /products |
Добавление продукта |
| PUT | /products/:id |
Редактирование продукта |
| DELETE | /products/:id |
Удаление продукта |
| POST | /products/increment/:barcode |
Добавление 1 единицы к количеству товара по штрих-коду |
| DELETE | /products/decrement/:barcode |
Удаление 1 единицы из количества товара по штрих-коду |
| Категории | ||
| GET | /categories |
Получение данных из таблицы Categories |
| POST | /categories |
Добавление данных в таблицу Categories |
| PUT | /categories/:id |
Редактирование данных в таблице Categories |
| DELETE | /categories/:id |
Удаление данных из таблицы Categories |
| Заказы | ||
| GET | /orders/details |
Получение всех заказов с деталями |
| GET | /orders/:id |
Получение заказа по ID |
| POST | /orders |
Добавление данных в таблицу Orders |
| PUT | /orders/:id |
Редактирование данных в таблице Orders |
| DELETE | /orders/:order_number |
Удаление данных из таблицы Orders по order_number |
| Статусы | ||
| GET | /statuses |
Получение всех статусов |
| GET | /statuses/:id |
Получение конкретного статуса по ID |
| POST | /statuses |
Добавление нового статуса |
| PUT | /statuses/:id |
Обновление статуса по ID |
| DELETE | /statuses/:id |
Удаление статуса по ID |
| Администрирование и безопасность | ||
| POST | /admin/register |
Регистрация нового администратора |
| POST | /admin/login |
Аутентификация администратора |
| POST | /reset-password/:email |
Запрос кода на почту для сброса пароля |
| POST | /reset-password/verify/:email |
Верификация кода сброса пароля |
Этот API используется в следующих клиентских приложениях:
- PRO_Courier — мобильное приложение для курьеров
- internet-shop-actual — мобильное приложение интернет-магазина
- ProductManager_wpf — десктопное приложение для складского учёта
Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.
Ссылка на проект: https://github.com/filincprt/rmdb_api Деплоймент: rmdb-api.vercel.app
Этот README создан на основе структуры репозитория, истории коммитов и документации API.
Чтобы сделать этот файл ещё информативнее, вы можете добавить:
- Примеры запросов и ответов для основных эндпоинтов.
- Схему базы данных — описание таблиц и связей между ними.
- Инструкцию по деплою на Vercel — если планируется размещение в облаке.
- Описание аутентификации — как именно передаётся токен/сессия при защищённых запросах.