# 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;
Как запустить приложение
- Запустить файл docker-compose командой:
docker-compose up -d
- Выполнить команду:
go build main.go
- Запустить испольняемый файл main.
API:
К существующему API задания было добавлено два эндпойта:
- GET /api/history_banner/{id} Возвращаются все версии баннера.
- POST /api/version_banner В теле запроса необходимо передать нужную версию: { "banner_id": "123", "title": "Test", "text": "Test", "url": "Test", }
Итоги
Мне интересна разработка микросервисов, я уверен, что в Вашей компании я бы смог прокачать свои навыки разработки, а также вырасти как специалист, выполняя различные задачи. К сожалению немного не хватило времени, чтобы написать тесты и отладить проект. Сделал проверку через Postman. Для удаления по фиче и тэгам хотел использовать Rabbit для того чтобы в отдельной горутине удалять записи из БД, чтобы при отключении сервера данные для удаления сохранялись.
Надеюсь на обратную связь. Спасибо.
# Packages
No description provided by the author