Go-TestAPI/readme.md

3.7 KiB
Raw Permalink Blame History

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