Щоб перевірити роботу REST API пиши так:
Отримує body в форматі {email, password, subscription} (перші два поля обов'язкові, всі поля мають бути стрінгами, валідація присутня)
Відповідь
— при помилці валідації повертається "Помилка від Joi або іншої бібліотеки валідації" зі статусом 400; якщо пошта вже використовується кимось іншим повертається ResponseBody: {"message": "Email in use"} зі статусом 409; якщо з body все добре повертається об'єкт наступного виду {
"user": {
"email": "example@example.com",
"subscription": "starter"
}
} і статусом 201 (поле subscription додається по замовчуванню, якщо його не вказати при реєстрації через налаштування моделі "user" - subscription: {
type: String,
enum: ["starter", "pro", "business"],
default: "starter"
})
Отримує body в форматі {email, password} (всі поля обов'язкові та мають бути стрінгами, валідація присутня)
Відповідь
— при помилці валідації повертається "Помилка від Joi або іншої бібліотеки валідації" зі статусом 400; якщо пароль або email невірний повертається ResponseBody: {"message": "Email or password is wrong"} зі статусом 401; якщо з body все добре шукається пароль для користувача в БД, якщо пароль знаходиться створюється токен, зберігається в поточному полі юзера і повертається об'єкт наступного виду ResponseBody: {
"token": "exampletoken",
"user": {
"email": "example@example.com",
"subscription": "starter"
}
} і статусом 200
Отримує пусте body з обовʼязковим заголовком Authorization: "Bearer {{token}}"
Відповідь
— якщо користувача у моделі "user" за _id не існує повертається ResponseBody: {"message": "Not authorized"} і статус 401; в іншому випадку, видаляється токен у поточного юзера і повертається статус 204
Запит відправляється з обовʼязковим заголовком Authorization: "Bearer {{token}}"
Відповідь
— якщо користувача не існує повертається ResponseBody: {"message": "Not authorized"} і статус 401; в іншому випадку повертається ResponseBody: {
"email": "example@example.com",
"subscription": "starter"
} і статус 200
npm start
— старт сервера в режимі productionnpm run start:dev
— старт сервера в режимі розробки (development)npm run lint
— запустити виконання перевірки коду з eslint, необхідно виконувати перед кожним PR та виправляти всі помилки лінтераnpm run lint:fix
— та ж перевірка лінтера, але з автоматичними виправленнями простих помилок
Відповідь
— повертається масив всіх контактів в json-форматі зі статусом 200
Відповідь
— якщо такий id є, повертається об'єкт контакту в json-форматі зі статусом 200;
якщо такого id немає, повертається json з ключем "message": "not found" і статусом 404
Отримує body в форматі {name, email, phone} (усі поля обов'язкові та мають бути стрінгами)
Відповідь
— якщо в body немає якихось обов'язкових полів або вони не строки, повертається json з ключем {"message": "missing required field(s) / non-string field(s)"} і статусом 400; якщо з body все добре, додає унікальний ідентифікатор в об'єкт контакту i повертається об'єкт з доданим id {id, name, email, phone} і статусом 201
Відповідь
— якщо такий id є, повертається json формату {"message": "contact deleted"} і статусом 200;
якщо такого id немає, повертається json з ключем "message": "not found" і статусом 404
Отримує body в json-форматі c оновленням будь-яких полів name, email и phone (валідадія присутня як у додавані контакту)
Відповідь
— якщо з body всe добре - повертається оновлений об'єкт контакту зі статусом 200, інакше повертається json з ключем "message": "not found" і статусом 404
Отримує body в json-форматі з оновленням поля favorite (має бути значення boolean)
Відповідь
— якщо в body немає якихось обов'язкових полів або вони не строки, повертається json з ключем {"message":"missing field favorite"} і статусом 400; якщо з body всe добре - повертається оновлений об'єкт контакту зі статусом 200, інакше повертається json з ключем "message": "not found" і статусом 404
Link to documentation:
https://contacts-backend-eikd.onrender.com/api-docs/