/das-top_das

Primary LanguagePythonMIT LicenseMIT

Хранилище топов мероприятий

Данный документ содержит описание работы и информацию о развертке микросервиса-обертки для хранилища топов мероприятий пользователей

Название сервиса: top_das

Структура сервиса:

Файл Описание
top_das.py Код микросервиса
config.yml Конфигурационный файл со строкой подключения к RabbitMQ и Redis
run.sh Файл для запуска сервиса из Docker контейнера
requirements.txt Верхнеуровневые зависимости
Dockerfile Описание сборки контейнера сервиса
docker-compose.yml Изолированная развертка сервиса вместе с (RabbitMQ, Redis)
README.md Описание микросервиса

API

RPC

Обновить топ мероприятий пользователя:

n.rpc.top_das.update_top(user_id, new_top)

Args:
    user_id,
    new_top - list of IDs [id1, id2, ..] of top events
Returns nothing

Получить топ мероприятий пользователя:

n.rpc.top_das.get_top(user_id)

Args: user_id
Return: list of IDs [id1, id2, ..] of top events

Удалить мероприятия (например, прошедшие):

n.rpc.top_das.delete_events(event_ids)

Args: event_ids - list of ids of events should be deleted
Returns nothing

HTTP

Обновить топ мероприятий пользователя:

POST http://localhost:8000/update HTTP/1.1
Сontent-Type: application/json

{
    "user": <user_id>,
    "top": ['event_1_id', ..., 'event_n_id']
}

Получить топ мероприятий пользователя:

GET http://localhost:8000/top HTTP/1.1

Удалить мероприятия (например, прошедшие):

DELETE http://localhost:8000/delete HTTP/1.1
Сontent-Type: application/json

{
    [id_1, id_2, ..., id_n]
}

Развертывание и запуск

Локальный запуск

Для локального запуска микросервиса требуется запустить контейнер с RabbitMQ и Redis.

docker-compose up -d

Затем из папки микросервиса вызвать

nameko run top_das

Для проверки rpc запустите в командной строке:

nameko shell

После чего откроется интерактивная Python среда. Обратитесь к сервису одной из команд, представленных выше в разделе rpc

Запуск в контейнере

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

docker-compose up

если вы не хотите просмотривать логи, добавьте флаг -d в конце

Микросервис запустится вместе с RabbitMQ и Redis в контейнерах.