Go to file
Владимир Шалимов 2310cfd05b Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
.idea first commit 2024-06-05 13:43:05 +05:00
brunoTest/golang-test Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
cli Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
controllers Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
database Added docker-compose 2024-06-09 20:46:43 +05:00
libs Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
middlewares Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
routes Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
types Code refactoring, added comments. 2024-06-09 17:58:38 +05:00
validators Добавил валидацию данных в контроллер производителей. 2024-06-05 20:53:24 +05:00
Dockerfile Added docker-compose 2024-06-09 20:46:43 +05:00
docker-compose.yml Added docker-compose 2024-06-09 20:46:43 +05:00
entrypoint.sh Added docker-compose 2024-06-09 20:46:43 +05:00
go.mod Added Docker 2024-06-09 20:01:21 +05:00
go.sum Added Docker 2024-06-09 20:01:21 +05:00
main.go Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00
readme.md Добавил миддлвейр для авторизации. И дописал readme.md 2024-06-10 15:59:20 +05:00

readme.md

Документация 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