Виконайте форк цього репозиторію для виконання домашніх завдань (2-6) Форк створить репозиторій на вашому http://github.com
Додайте ментора до колаборації
Для кожної домашньої роботи створюйте свою гілку.
- hw02
- hw03
- hw04
- hw05
- hw06
Кожна нова гілка для др повинна робитися з master
Після того, як ви закінчили виконувати домашнє завдання у своїй гілці, необхідно зробити пулл-реквест (PR). Потім додати ментора для рев'ю коду. Тільки після того, як ментор заапрувить PR, ви можете виконати мердж гілки з домашнім завданням у майстер.
Уважно читайте коментарі ментора. Виправте зауваження та зробіть коміт у гілці з домашнім завданням. Зміни підтягнуться у PR автоматично після того, як ви відправите коміт з виправленнями на github Після виправлення знову додайте ментора на рев'ю коду.
- При здачі домашньої роботи є посилання на PR
- JS-код чистий та зрозумілий, для форматування використовується Prettier
npm start
— старт сервера в режимі productionnpm run start:dev
— старт сервера в режимі розробки (development)npm run lint
— запустити виконання перевірки коду з eslint, необхідно виконувати перед кожним PR та виправляти всі помилки лінтераnpm lint:fix
— та ж перевірка лінтера, але з автоматичними виправленнями простих помилок
Подивися пояснююче відео як це зробити та здавати ДЗ правильно: https://www.youtube.com/watch?v=wabSW_sz_cM ' пояснення'
Написати REST API для роботи з колекцією контактів. Для роботи з REST API використовуй [Postman] (https://www.getpostman.com/).
Прочитай уважно readme в клонованому темплейті, там описаний механізм здачі домашніх завдань. Та починай виконувати ДЗ
Створи гілку hw02-express
з гілки master.
Встанови модулі командою
npm i
Такі модулі є в проекті:
У app.js
– веб сервер на express
і прошарки morgan
та cors
. Почни налаштовувати раутінг для роботи з колекцією контактів.
REST API повинен підтримувати такі раути.
- нічого не отримує
- викликає функцію
listContacts
для роботи з json-файломcontacts.json
- повертає масив всіх контактів в json-форматі зі статусом
200
- Не отримує
body
- Отримує параметр
id
- викликає функцію
getById
для роботи з json-файломcontacts.json
- якщо такий
id
є, повертає об'єкт контакту в json-форматі зі статусом200
- якщо такого
id
немає, повертає json з ключем"message": "Not found"
і статусом404
- Отримує
body
в форматі{name, email, phone}
(усі поля обов'язкові) - Якщо в
body
немає якихось обов'язкових полів, повертає json з ключем{"message": "missing required name field"}
і статусом400
- Якщо з
body
все добре, додає унікальний ідентифікатор в об'єкт контакту - Викликає функцію
addContact(body)
для збереження контакту в файліcontacts.json
- За результатом роботи функції повертає об'єкт з доданим
id
{id, name, email, phone}
і статусом201
- Не отримує
body
- Отримує параметр
id
- Викликає функцію
removeContact
для роботи з json-файломcontacts.json
- якщо такий
id
є, повертає json формату{"message": "contact deleted"}
і статусом200
- якщо такого
id
немає, повертає json з ключем"message": "Not found"
і статусом404
- Отримує параметр
id
- Отримує
body
в json-форматі з оновленням будь-яких полівname, email и phone
- Якщо
body
немає, повертає json з ключем{"message": "missing fields"}
і статусом400
- Якщо з
body
все добре, викликає функціюupdateContact(contactId, body)
. (Напиши її) для поновлення контакту в файліcontacts.json
- За результатом роботи функції повертає оновлений об'єкт контакту і статусом
200
. В іншому випадку, повертає json з ключем"message": "Not found"
і статусом404
Для маршрутів, що приймають дані (POST
та PUT
), продумайте перевірку (валідацію) отриманих даних. Для валідації прийнятих даних використовуйте пакет joi
- Створено репозиторій з домашнім завданням — REST API додаток
- При створенні репозиторія використаний бойлерплейт
- Пулл-реквест (PR) з відповідним дз відправлений менторові в schoology на перевірку (посилання на PR)
- Код відповідає технічному завданню проекта
- При виконанні коду не виникає необроблених помилок
- Назва змінних, властивостей і методів починається з малої літери і записуються в нотації CamelCase. Використовуються англійські іменники
- Назва функції або методу містить дієслово
- У коді немає закоментуваних ділянок коду
- Проект коректно працює з актуальною LTS-версією Node