Skip to content

VladPeskovDev/ServerNestJS-

Repository files navigation

ServerNestJS-

Задание. Используя Git, TypeScript, NestJS, Prisma и PostgreSQL создайте RESTful-сервис для работы с информацией о пользователях. Требования:

  1. Docker и Docker Compose:
  • Написать Dockerfile для приложения и compose.yml файл для запуска приложения и базы данных в контейнерах.
  1. Структура таблицы пользователей:
  • Таблица пользователей должна содержать следующие поля:
  • id (UUID, Primary Key)
  • firstName (строка)
  • lastName (строка, необязательная)
  • createdAt (дата создания записи)
  • updatedAt (дата обновления)
  1. Миграция:
  • Создать файл миграции с помощью Prisma для создания таблицы пользователей.
  • Написать скрипт для заполнения таблицы случайными записями (достаточно 10 записей).
  1. Создание CRUD-ресурса:
  • Создать новый CRUD-ресурс для управления пользователями.
  • Реализовать все стандартные методы CRUD.
  • Добавить отдельный метод для получения всех записей таблицы, использующий Server Sent Events (SSE).
  1. Валидация:
  • Для каждого метода API валидировать параметры и тело запроса.
  1. Конфигурация подключения к БД:
  • Вынести информацию о подключении к базе данных (URL, имя пользователя, пароль и др.) в переменные окружения. Создайте файл .env для хранения этих переменных.
  1. Размещение кода:
  • Разместить код в репозитории на GitHub. Убедитесь, что включены:
  • README.md, описывающий проект, его установку и запуск.
  • .gitignore, чтобы исключить ненужные файлы и папки из репозитория.

------------> Запуск проекта <-------------

  1. Установить зависимости npm i
  2. Создать файл .env после чего прописать криденшелы
  3. Выолнить команду npm run db
  4. Выполнить команду npm run seed (для заполнения бд)
  5. Запустить сервер npm run dev

------------>Тестирование сервиса <------------ Тестирование можно осуществлять через Thunder client (расширение VS CODE)

  1. Создание пользователя (POST) http://localhost:3000/users { "firstName": "Kir", "lastName": "Bulychev" }

  2. Получение всех пользователей (GET) http://localhost:3000/users

  3. Получение пользователя по ID (GET) http://localhost:3000/users/{id}

  4. Обновление пользователя (PUT) http://localhost:3000/users/{id} { "firstName": "Jane", "lastName": "Smith" }

  5. Удаление пользователя (DELETE) http://localhost:3000/users/{id}

  6. Получение пользователей через Server-Sent Events (SSE) http://localhost:3000/users/stream через курл (curl -i http://localhost:3000/users/stream) - интервал 5 секунд

  7. Тестировани валидации: http://localhost:3000/users в body ------> { "firstName": "Иван" } ожидаемый ответ: { "message": [ "Фамилия не должна быть пустой", "lastName must be a string" ], "error": "Bad Request", "statusCode": 400 }
    тестирование через curl ---> (curl -X PUT http://localhost:3000/users/invalid-id
    -H 'Content-Type: application/json'
    -d '{"firstName": "Петр"}' ) ожидаемый ответ -----> { "statusCode": 400, "message": "Validation failed (uuid is expected)", "error": "Bad Request" }

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors