danfimov / messenger-api

Это учебный проект, начало которому было положено в ШБР Яндекса. Данный проект реализует REST-API для мессенджера.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Бэкенд для мессенджера

Flake8 Pytest

Это учебный проект, начало которому было положено в ШБР Яндекса. Данный проект реализует REST-API для мессенджера.

Реализованные функции

Пользователь может:

  • регистрироваться, получая токен
  • создавать и входить в чаты
  • писать в чат / получать сообщение с пагинацией
  • искать по чатам (задача асинхронная, на запрос поиска пользователь получает id задачи)

Используемые технологии

  1. Для реализации api была использована библиотека aiohttp.
  2. На данный момент валидация запросов осуществляется с помощью библиотеки pydantic.
  3. Взаимодействие с базой данных PostgreSQL происходит посредством SQLAlchemy ORM.
  4. Асинхронные таски используют библиотеку asyncio.
  5. Настроены автотесты (pytest) и проверка процента покрытия кода тестами, а также запуск линтера (flake8) при коммите.

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

Запуск приложения напрямую:

python src/messenger/api/__main__.py

Установка пакета и запуск:

pip install src/
messenger-api

Запуск тестов:

pytest tests

После запуска тестов можно увидеть подробный отчет о покрытие кода тестами в файле htmlcov/index.html.

About

Это учебный проект, начало которому было положено в ШБР Яндекса. Данный проект реализует REST-API для мессенджера.


Languages

Language:Python 97.1%Language:Dockerfile 2.2%Language:Mako 0.7%