Создать приложение на NestJS, которое предоставляет RESTful API для управления книгами и имеет систему аутентификации пользователей.
- Создать файл .env и внести в него следующие данные (пример)
PORT=8000
DATABASE_URL="postgresql://root:password@localhost:5432/books_db?schema=public"
POSTGRES_USER=root
POSTGRES_PASSWORD=password
POSTGRES_DB=books_db
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=root
JWT_SECRET=secret
- Запустить докер контейнеры
docker-compose up --build
- Докуменация swagger доступна по адресу http://localhost:8000/
-
Пользователь:
- ID (уникальный идентификатор)
- Имя пользователя
- Электронная почта (уникальная)
- Пароль (зашифрованный)
-
Книга:
- ID (уникальный идентификатор)
- Название
- Автор
- Год издания
- Краткое описание
- ID пользователя (владельца книги)
POST /users/register
– регистрация нового пользователя.POST /users/login
– аутентификация пользователя и возврат JWT токена.POST /books
– добавление новой книги (только для аутентифицированных пользователей).GET /books
– получение списка всех книг.GET /books/:id
– получение детальной информации о книге по ID.PUT /books/:id
– обновление информации о книге по ID (только владелец книги).DELETE /books/:id
– удаление книги по ID (только владелец книги).
- Проверять наличие и формат обязательных полей при регистрации и добавлении книги.
- Возвращать соответствующие сообщения об ошибках и HTTP статусы.
- Для хранения данных использовать Postgres.
- Использовать JWT для аутентификации.
- Проверять права доступа пользователя к операциям с книгами.
- Список книг должен работать без авторизации
- Пагинация: Добавить возможность пагинации для
GET /books
. - Фильтрация: Добавить возможность фильтрации книг по автору или году издания.