Skip to content

unit-team-spbu/das-event_das

Repository files navigation

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

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

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

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

Файл Описание
event_das.py Код микросервиса
config.yml Конфигурационный файл со строкой подключения к RabbitMQ и MongoDB
run.sh Файл для запуска сервиса из Docker контейнера
requirements.txt Верхнеуровневые зависимости
requirements.lock Все зависимости (pip freeze)
Dockerfile Описание сборки контейнера сервиса
docker-compose.yml Изолированная развертка сервиса вместе с (RabbitMQ, MongoDB)
docker-compose.local.yml Развертка зависимостей для дебаггинга (RabbitMQ, MongoDB)
.rest Тесты взаимодействия с HTTP эндпоинтами микросервиса
README.md Описание микросервиса

API

RPC

Сохранить мероприятия:

n.rpc.event_das.save_events(events)

Args: list of events
Returns: nothing

Получить мероприятие по его ид:

n.rpc.event_das.get_event_by_id(event_id)

Args: event_id
Return: event as dictionary object

Получить мероприятия, отсортированные по дате:

n.rpc.event_das.get_events_by_date()

Args: nothing
Returns: list of actual events sorted by date

Получить тэги мероприятия по его ид:

n.rpc.event_das.get_tags_by_id(event_id)

Args: event_id
Returns: list of all tags related to the event

Получить список ид всех мероприятий с их тэгами в виде словаря:

n.rpc.event_das.get_event_tags()

Args: nothing
Returns: events like {'event_1_id': ['tag_1',...,'tag_n'], ..., 'event_m_id':['tag_1',...,'tag_k']}

HTTP

Сохранить мероприятия:

POST http://localhost:8000/events HTTP/1.1
Content-Type: application/json

[
  {
    "title": "Видео+Конференция 2020",
    "type": "Конференция",
    "isPaid": true,
    "isOnline": true,
    "location": "Москва, Россия",
    "startDate": "13.10.2020",
    "endDate": "14.10.2020",
    "description": "...",
    "meta": {
      "it_events_crawler": "18960"
    }
  }, ..., {}
]

Получить мероприятия, отсортированные по дате:

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

Получить тэги мероприятия по его ид:

GET http://localhost:8000/events/<string:id>/tags HTTP/1.1

Получить список ид всех мероприятий с их тэгами в виде словаря:

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

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

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

Для локального запуска микросервиса требуется запустить контейнер с RabbitMQ и MongoDB. Для этого есть специальный docker-compose.local.yml. Чтобы запустить:

docker-compose --file docker-compose.local.yml up -d

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

nameko run event_das

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

nameko shell

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

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

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

docker-compose up

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

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

Во всех случаях запуска вместе с MongoDB также разворачивается mongo-express - инструмент, с помощью которого можно просматривать и изменять содержимое подключенной базы (подключение в контейнерах сконфигурировано и производится автоматически). Сервис хостится локально на порту 8081.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published