Skip to content

crawlerv/mongo-inmemdb-test-task

Repository files navigation

Тестовое задание

Реализовать:

Эндпоинт удаления - удаляет в базе запись

Эндпоинт изменения - изменяет в базе запись

Эндпоинт показать - показывает текущий актуальный список

Процесс, который подгружает записи с базы в оперативку, с определенным интервалом

Предпочтительная база: MongoDB

Результатом вашей работы должен быть запускаемый код в репозитории git.

Решение

Стек: Go, MongoDb, Docker

Приложение запускается с использованием Docker-контейнеров.

Сервисы описаны в файле docker-compose.yml

Необходимые переменные окружения указаны и прокомментированы в файле .env

Интервал для подгрузки данных в оперативку указыается через переменную окружения TICKERINTERVALSECONDS

Есть возможность сгенерировать фейковые данные, чтобы первично заполнить БД (описание в конце файла).

Запуск

docker-compose up -d

API доступно по адресу http://127.0.0.1:8888 (порт по умолчанию из .env)

Доступно 4 эндпоинта:

  • GET /list - получение текущего актуального списка записей
  • POST /create - добавление новой записи
  • POST /update/ID - изменение существующей записи
  • POST /delete/ID - удаление записи

Подробнее про запросы

Тестирование возможно с помощью curl в консоли.

GET /list

Открыть адрес в браузере http://127.0.0.1:8888/list

POST /create Создание записи

В корне есть файл create.json в котором указаны тестовые данные

curl -X POST 127.0.0.1:8888/create -H 'Content-Type: application/json' -d @create.json

POST /update/ID редактирование записи

В корне есть файл update.json в котором указаны тестовые данные. ID необходимо взять со страницы http://127.0.0.1:8888/list

curl -X POST 127.0.0.1:8888/update/ID -H 'Content-Type: application/json' -d @update.json

POST /delete/ID удаление записи

ID необходимо взять со страницы http://127.0.0.1:8888/list

curl -X POST 127.0.0.1:8888/delete/ID

Генерация фейковых данных

После запуска контейнеров в корне проекта выполнить команду:

make faker count=20

где 20 - это кол-во записей которые будут сгенерированы

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published