rolling-scopes-school / support

15 stars 3 forks source link

Cross-Check 'simple-crud-api' - 'ikindiBy' #328

Closed ikindiBy closed 2 years ago

ikindiBy commented 2 years ago

Базовая реализация (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 баллов).

AlreadyBored commented 2 years ago

Ваша оценка - 127 баллов

Отзыв по пунктам ТЗ:

Не выполненные/не засчитанные пункты:

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 файле