- В репозитории с приложением имеется файл
Readme.md, содержащий подробные инструкции по установке, запуску и использованию приложения плюс 10 баллов - Сервер возвращает соответствующие ответы на запросы:
- GET
/person:- Сервер возвращает статус код 200 и все записи плюс 6 баллов
- GET
/person/{personId}:- Сервер возвращает статус код 200 и запись с
id === personId, если такая запись есть плюс 10 баллов - Сервер возвращает статус код 400 и соответствующее сообщение, если
personIdневалиден (неuuid) плюс 6 баллов - Сервер возвращает статус код 404 и соответствующее сообщение, если запись с
id === personIdне найдена плюс 6 баллов
- Сервер возвращает статус код 200 и запись с
- 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 баллов
- Ошибки, возникающие при обработке запроса на
/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 баллов
- Имеются E2E тесты, покрывающие логику приложения (не меньше 3 различных сценариев) плюс 30 баллов Пример сценария:
- GET-запросом получаем все объекты (ожидается пустой массив)
- POST-запросом создается новый объект (ожидается ответ, содержащий свежесозданный объект)
- GET-запросом пытаемся получить созданный объект по его
id(ожидается созданный объект) - PUT-запросом пытаемся обновить созданный объект (ожидается ответ, содержащий обновленный объект с тем же
id) - DELETE-запросом удаляем созданный объект по
id(ожидается подтверждение успешного удаления) - GET-запросом пытаемся получить удаленный объект по
id(ожидается ответ, что такого объекта нет)
- Полная ссылка на репозиторий с решением отличается от
https://github.com/%your-github-id%/simple-crud-apiминус 100 баллов - Использование любых пакетов, библиотек, фреймворков кроме
nodemon,dotenv,cross-env,eslintи его плагинов,webpackи его плагинов,uuid, а также библиотек, используемых для тестирования минус 130 баллов - Имеются коммиты после дедлайна, за исключением коммитов, изменяющих исключительно
Readme.mdлибо вспомогательные файлы (.gitignore,.prettierrc.jsonи т.д.) минус 30% от максимального балла за задание (минус 49 баллов) - Отсутствует PR либо его описание некорректно (отсутствуют либо некорректен любой из 3 обязательных пунктов) минус 20 баллов
- Отсутствует отдельная ветка для разработки минус 20 баллов
- Меньше 3 коммитов в ветке разработки, не считая коммиты, вносящие изменения только в
Readme.mdлибо вспомогательные файлы (.gitignore,.prettierrc.jsonи т.д.) минус 20 баллов