Go-TestAPI/readme.md

63 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Документация 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** - Основной файл. Используется для запуска сервера.
## 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
```