Go-TestAPI/readme.md

63 lines
3.7 KiB
Markdown
Raw Normal View History

2024-06-10 02:36:18 +00:00
# Документация API
## Обзор
Этот проект представляет собой RESTful API для управления товарами, производителями и пользователями. В качестве ORM используется GORM.
## Структура проекта
- **cli/migration.go** - Применение автомиграции в БД.
- **contollers/** - Вся бизнес логика, обращения к БД.
- **database/connect.go** - Подключение к БД.
- **database/models.go** - Модели Gorm.
- **brunoTest/** - Коллекция Bruno для тестирования API.
- **libs/** - Небольшие функции используемые в разных контроллерах.
- **middlewares/authMiddleware.go** - Прослойка для авторизации.
- **routes.go** - Описание всех маршрутов.
- **types/** - Типы для запросов и ответов на сервер.
- **validators/** - Кастомные валидаторы.
- **docker-compose.yml** - Файл docker-compose для запуска в контейнере вместе в БД.
- **Dockerfile** - Файл для сборки докер контейнера.
- **entrypoint.sh** - Входная точка для докер контейнера. Нужна чтобы запустить миграцию в бд перед запуском сервера.
- **main.go** - Основной файл. Используется для запуска сервера.
2024-06-10 02:36:18 +00:00
## Endpoints
### Товары
- **POST /product** - Создание нового товара. Требуется JSON с данными товара.
- **DELETE /product/:id** - Удаление товара по идентификатору.
- **GET /product** - Получение списка всех товаров.
- **GET /product/:id** - Получение информации о конкретном товаре.
- **GET /product/:id/buy** - Покупка товара по идентификатору.
### Производители
- **POST /manufacturer** - Создание нового производителя. Требуется JSON с данными производителя.
- **DELETE /manufacturer/:id** - Удаление производителя по идентификатору.
- **GET /manufacturer** - Получение списка всех производителей.
- **PATCH /manufacturer/:id** - Редактирование данных производителя. Требуется JSON с изменениями.
### Пользователи
- **POST /registration** - Регистрация нового пользователя. Требуется JSON с данными пользователя.
- **POST /login** - Вход пользователя. Требуется JSON с данными для входа.
- **GET /user** - Получение данных текущего пользователя.
- **PATCH /user** - Редактирование имени пользователя. Требуется JSON с новым именем.
- **POST /user/addmoney** - Добавление денег на счет пользователя. Требуется JSON с суммой.
- **GET /user/products** - Получение списка купленных пользователем товаров.
## Запуск сервера
Сервер запускается в докер контейнере
Сначала нужно собрать image командой:
```
docker build -t ravonzz/go-testapi .
```
Затем можно запускать контейнер вместе с БД Postgresql командой:
```
docker-compose up -d
```