Данный документ содержит описание работы и информацию о развертке микросервиса, предназначенного для хранения информации о лайках, поставленных пользователем и отправляющего информацию о новых лайках в сервис интересов пользователей.
Название: likes
Структура сервиса:
Файл | Описание |
---|---|
likes.py |
Код микросервиса |
config.yml |
Конфигурационный файл со строкой подключения к RabbitMQ и MongoDB |
run.sh |
Файл для запуска сервиса из Docker контейнера |
requirements.txt |
Верхнеуровневые зависимости |
Dockerfile |
Описание сборки контейнера сервиса |
docker-compose.yml |
Изолированная развертка сервиса вместе с (RabbitMQ, MongoDB) |
README.md |
Описание микросервиса |
Новый лайк:
n.rpc.likes.new_like(like_data)
Args: like_data = [user_id, event_id]
Returns: nothing
Dispatch to the `uis`: [user_id, event_id]
Отмена лайка:
n.rpc.likes.cancel_like(like_data)
Args: like_data = [user_id, event_id]
Returns: nothing
Dispatch to the `uis`: [user_id, event_id]
Получить список ид мероприятий, которые понравились пользователю:
n.rpc.likes.get_likes_by_id(user_id)
Args: user_id
Returns: [event_1_id, ..., event_n_id]
Узнать, понравилось ли пользователю данное мероприятие:
n.rpc.likes.is_event_liked(user_id, event_id)
Args: user_id, event_id
Returns: True is event is liked, False otherwise
Новый лайк
POST http://localhost:8000/new_like HTTP/1.1
Content-Type: application/json
[user_id, event_id]
Отмена лайка:
POST http://localhost:8000/cancel_like HTTP/1.1
Content-Type: application/json
[user_id, event_id]
Получить список ид мероприятий, которые понравились пользователю:
GET http://localhost:8000/get_likes/<id> HTTP/1.1
Узнать, понравилось ли пользователю данное мероприятие:
GET http://localhost:8000/is_liked/<user_id>/<event_id> HTTP/1.1
Для локального запуска микросервиса требуется запустить контейнер с RabbitMQ и MongoDB.
docker-compose up -d
Затем из папки микросервиса вызвать
nameko run likes
Для проверки rpc
запустите в командной строке:
nameko shell
После чего откроется интерактивная Python среда. Обратитесь к сервису одной из команд, представленных выше в разделе rpc
.
Чтобы запустить микросервис в контейнере вызовите команду:
docker-compose up
если вы не хотите просмотривать логи, добавьте флаг
-d
в конце
Микросервис запустится вместе с RabbitMQ и MongoDB в контейнерах.
Во всех случаях запуска вместе с MongoDB также разворачивается mongo-express - инструмент, с помощью которого можно просматривать и изменять содержимое подключенной базы (подключение в контейнерах сконфигурировано и производится автоматически). Сервис хостится локально на порту 8081.