2024-01-26 17:58:01 +03:00
2023-07-05 16:08:17 +02:00
2024-01-25 22:41:27 +03:00
2024-01-26 17:58:01 +03:00
2024-01-26 04:05:25 +03:00
2024-01-26 13:28:49 +03:00
2024-01-23 04:03:15 +03:00
2024-01-26 13:28:49 +03:00
2024-01-25 22:41:27 +03:00
2024-01-25 22:55:00 +03:00
2024-01-25 22:41:27 +03:00
2024-01-11 20:23:02 +03:00
2024-01-26 04:05:25 +03:00
2024-01-26 13:28:49 +03:00
2024-01-25 22:41:27 +03:00

Техстек

  • sqlalchemy
  • redis
  • ariadne
  • starlette
  • granian

Локальная разработка

Подготовьте зависимости

osx:

brew install redis nginx postgres
brew services start redis

debian/ubuntu:

apt install redis nginx

Затем запустите postgres, redis и наш API-сервер:

mkdir .venv
python3.12 -m venv .venv
poetry env use .venv/bin/python3.12
poetry update
poetry granian --no-ws --host 0.0.0.0 --port 8080 --interface asgi main:app

Подключенные сервисы

Для межсерверной коммуникации используется разны механики, похожим образом это устроено в других сервисах нашей инфраструктуры.

auth.py

Настройте переменную окружения WEBHOOK_SECRET и настройте webhook-полезную нагрузку на /new-author. Он ожидается при создании нового пользователя. На фронтенде включите заголовок Authorization с токеном из запроса signIn или мутации registerUser.

viewed.py

Для статистики просмотров установите переменные окружения GOOGLE_ANALYTICS_TOKEN и GOOGLE_GA_VIEW_ID для сбора данных из Google Analytics.

search.py

Результаты ElasticSearch с оценкой score, объединенные с запросами к базе данных, запрашиваем через GraphQL API load_shouts_search.

notify.py

Отправка уведомлений по Redis PubSub каналам

unread.py

Счетчик непрочитанных сообщений получается через Redis-запрос к данным сервиса сообщений.

following.py

Внутренний сервис, обеспечивающий асинхронный доступ к оперативному хранилищу подписчиков на комментарии, топики и авторы.

Description
ядро платформы
Readme MIT 12 MiB
Languages
Python 74.6%
TypeScript 19.2%
CSS 6.1%