Categorygithub.com/BelyaevEI/backend-trainee-assignment-2024
module
0.0.0-20240624174656-4e40b6502e46
Repository: https://github.com/belyaevei/backend-trainee-assignment-2024.git
Documentation: pkg.go.dev

# README

backend-trainee-assignment-2024

Тестовое задание Avito-Tech REST API для тестового задания.

Функционал данного приложения:

Приложение позволяет создавать "баннеры" для демонстрации пользователям. Также предусмотрены некоторые функции:

  • Доступ к сущетсвующим эндпойтам осуществляется через JWT токены, в файле app.env содержится кодовое слово и секретный ключ
  • предусмотрено два ключа USER и ADMIN, с USER токеном можно обращаться только к эндпойнту /user_banner, с ADMIN ко всем;
  • Обновление уже существующего баннера(добавление новых тэгов, изменение содержания баннера, активация/деактивация баннера);
  • Удаление баннера;
  • Получение всех баннеров по фиче и тэгу;
  • Получение истории изменений баннера по ID (/api/history_banner/{id});
  • Замена актуального баннера(/api/version_banner);
  • Добавлен кэш в виде Redis;

Как запустить приложение

  1. Запустить файл docker-compose командой:
docker-compose up -d
  1. Выполнить команду:
go build main.go
  1. Запустить испольняемый файл main.

API:

К существующему API задания было добавлено два эндпойта:

  1. GET /api/history_banner/{id} Возвращаются все версии баннера.
  2. POST /api/version_banner В теле запроса необходимо передать нужную версию: { "banner_id": "123", "title": "Test", "text": "Test", "url": "Test", }

Итоги

Мне интересна разработка микросервисов, я уверен, что в Вашей компании я бы смог прокачать свои навыки разработки, а также вырасти как специалист, выполняя различные задачи. К сожалению немного не хватило времени, чтобы написать тесты и отладить проект. Сделал проверку через Postman. Для удаления по фиче и тэгам хотел использовать Rabbit для того чтобы в отдельной горутине удалять записи из БД, чтобы при отключении сервера данные для удаления сохранялись.

Надеюсь на обратную связь. Спасибо.

# Packages

No description provided by the author