Данный сервис предоставляет API для создания, просмотра сообщений (постов) и комментариев к ним. Сервис включает авторизацию через JWT, базу данных для хранения данных и набор API-методов.
- Заполнить env переменные: Убедитесь, что все необходимые переменные окружения заданы в соответствии с конфигурацией проекта.
- Запуск Docker Compose: Выполните команду
docker compose up -d
для запуска сервисов, определённых в Docker Compose. - Восстановление базы данных: Сделайте рестор базы данных из файла
postgres.sql
. - Документация API: Доступ к документации API осуществляется по адресу
localhost:PORT/api/docs
, гдеPORT
- порт, на котором запущен сервис.
- Тип авторизации: JWT (JSON Web Tokens).
- Payload JWT: Содержит
id
пользователя и массивgroupIds
(идентификаторы групп, к которым пользователь имеет доступ). При необходимости, в payload могут быть добавлены дополнительные параметры. - Ключ для подписи JWT необходимо указать в JWT_SECRET (при написание тестов использован ключ по умолчанию - SOME_SECRET)
- Модели:
posts
: Обязательные поля -id
,group_id
,text
,created_by
.comments
: Обязательные поля -id
,post_id
,text
,created_by
.- Можно добавить дополнительные модели и поля по необходимости.
- Особенности:
- Идентификаторы групп (
group_id
) и пользователя (created_by
) обрабатываются в другом сервисе и не включаются в текущий сервис. - Идентификатор группы получается из параметров запроса, а идентификатор пользователя - из JWT.
- Идентификаторы групп (
- Инициализация. Для создания коллекций необходимо сделать рестор из файла postgres.sql
- api: Контроллеры, DTO, модули API.
- auth: Модули аутентификации, стратегии JWT, гварды, декораторы.
- comment: DTO, модули, репозитории и сервисы для комментариев.
- post: DTO, модули, репозитории и сервисы для постов.
- user: Модули и сервисы пользователя.
- database: Модули и сервисы для работы с базой данных.
- app.module.ts: Главный модуль приложения.
- main.ts: Точка входа в приложение.
Документация доступна по адресу: localhost:PORT/api/docs