Closed ikindiBy closed 2 years ago
Отзыв по пунктам ТЗ:
1) Имеются E2E тесты, покрывающие логику приложения (не меньше 3 различных сценариев) плюс 30 баллов
1) Ошибки, возникающие при обработке запроса на /person корректно обрабатываются и в случае их возникновения API возвращает статус код 500 с соответствующим сообщением Отзыв: Передача некорректного JSON валит приложение
1) В репозитории с приложением имеется файл Readme.md, содержащий подробные инструкции по установке, запуску и использованию приложения
2) Сервер возвращает статус код 200 и все записи
3) Сервер возвращает статус код 200 и запись с id === personId, если такая запись есть
4) Сервер возвращает статус код 400 и соответствующее сообщение, если personId невалиден (не uuid)
5) Сервер возвращает статус код 404 и соответствующее сообщение, если запись с id === personId не найдена
6) Сервер возвращает статус код 201 и свежесозданную запись
7) Сервер возвращает статус код 400 и соответствующее сообщение, если тело запроса не содержит обязательных полей
8) Сервер возвращает статус код 200 и обновленную запись
9) Сервер возвращает статус код 400 и соответствующее сообщение, если personId невалиден (не uuid)
10) Сервер возвращает статус код 404 и соответствующее сообщение, если запись с id === personId не найдена
11) Сервер возвращает статус код 204 если запись найдена и удалена
12) Сервер возвращает статус код 400 и соответствующее сообщение, если personId невалиден (не uuid)
13) Сервер возвращает статус код 404 и соответствующее сообщение, если запись с id === personId не найдена
14) Запросы на несуществующие ресурсы (например, /some/non/existing/resource) корректно обрабатываются (возвращается human friendly сообщение и 404 статус код)
15) Приложение запускается в development-режиме при помощи nodemon (имеется npm скрипт start:dev)
16) Приложение запускается в production-режиме при помощи webpack (имеется npm скрипт start:prod, который запускает процесс сборки webpack и после этого запускает файл с билдом)
17) Значение PORT хранится в .env файле
.
Базовая реализация (98 баллa)
В репозитории с приложением имеется файл Readme.md, содержащий подробные инструкции по установке, запуску и использованию приложения плюс 10 баллов Сервер возвращает соответствующие ответы на запросы: GET /person:
Сервер возвращает статус код 200 и все записи плюс 6 баллов GET /person/{personId}:
Сервер возвращает статус код 200 и запись с id === personId, если такая запись есть плюс 10 баллов Сервер возвращает статус код 400 и соответствующее сообщение, если personId невалиден (не uuid) плюс 6 баллов Сервер возвращает статус код 404 и соответствующее сообщение, если запись с id === personId не найдена плюс 6 баллов POST /person
Сервер возвращает статус код 201 и свежесозданную запись плюс 10 баллов Сервер возвращает статус код 400 и соответствующее сообщение, если тело запроса не содержит обязательных полей плюс 6 баллов PUT /person/{personId}
Сервер возвращает статус код 200 и обновленную запись плюс 10 баллов Сервер возвращает статус код 400 и соответствующее сообщение, если personId невалиден (не uuid) плюс 6 баллов Сервер возвращает статус код 404 и соответствующее сообщение, если запись с id === personId не найдена плюс 6 баллов DELETE /person/{personId}
Сервер возвращает статус код 204 если запись найдена и удалена плюс 10 баллов Сервер возвращает статус код 400 и соответствующее сообщение, если personId невалиден (не uuid) плюс 6 баллов Сервер возвращает статус код 404 и соответствующее сообщение, если запись с id === personId не найдена плюс 6 баллов.
Продвинутая реализация: (34 баллa)
Ошибки, возникающие при обработке запроса на /person корректно обрабатываются и в случае их возникновения API возвращает статус код 500 с соответствующим сообщением плюс 10 баллов Запросы на несуществующие ресурсы (например, /some/non/existing/resource) корректно обрабатываются (возвращается human friendly сообщение и 404 статус код) плюс 6 баллов Приложение запускается в development-режиме при помощи nodemon (имеется npm скрипт start:dev) плюс 6 баллов Приложение запускается в production-режиме при помощи webpack (имеется npm скрипт start:prod, который запускает процесс сборки webpack и после этого запускает файл с билдом) плюс 6 баллов Значение PORT хранится в .env файле плюс 6 баллов Hacker scope (0 баллов) Имеются E2E тесты, покрывающие логику приложения (не меньше 3 различных сценариев) плюс 30 баллов Пример сценария:
GET-запросом получаем все объекты (ожидается пустой массив) POST-запросом создается новый объект (ожидается ответ, содержащий свежесозданный объект) GET-запросом пытаемся получить созданный объект по его id (ожидается созданный объект) PUT-запросом пытаемся обновить созданный объект (ожидается ответ, содержащий обновленный объект с тем же id) DELETE-запросом удаляем созданный объект по id (ожидается подтверждение успешного удаления) GET-запросом пытаемся получить удаленный объект по id (ожидается ответ, что такого объекта нет) Штрафы (0 баллов).