Skip to content

Prysya/api-news-explorer

Repository files navigation

Version Made by: Prysya Stars * Beta Quality Code Size

Работа с api

К api можно обратиться по адресам:

www.api.prysya-news-explorer.tk

api.prysya-news-explorer.tk

84.201.147.94

Установка

Для работы необходим Node.js.

Склонировать проект, установить зависимости

$ git clone https://github.com/Prysya/api-news-explorer.git
$ cd api-news-explorer
$ npm install

Запуск локального сервера доступного по ссылке https://localhost:3000/

$ npm run start

Запуск сервера для разработки с hot reload:

$ npm run dev

Работа

Метод Путь Описание
POST /signup Создаёт пользователя с переданными в теле email, password, name
  • Пример запроса
{
  "name": "test",
  "email": "[email protected]",
  "password": "testtest"
}
  • Пример ответа в случае отсутствия ошибок валидации
{
  "data": {
    "name": "test",
    "email": "[email protected]"
  }
}
Метод Путь Описание
POST /signin Проверяет переданные в теле почту и пароль и возвращает JWT
  • Пример запроса
{
  "name": "test",
  "email": "[email protected]"
}
  • Пример ответа в случае отсутствия ошибок валидации
{
  "message": "Авторизация прошла успешно"
}
Метод Путь Описание
POST /logout Удаляет JWT и выходит из личного кабинета
  • Пример ответа
{
  "message": "Вы успешно вышли с учетной записи"
}
Метод Путь Описание
GET /users/me Возвращает информацию о пользователе (email и имя)
  • Пример ответа для неавторизованного пользователя
{
  "message": "Необходима авторизация"
}
  • Пример ответа для авторизованного пользователя
{
  "data": {
    "name": "test",
    "email": "[email protected]"
  }
}
Метод Путь Описание
POST /articles создаёт статью с переданными в теле keyword, title, text, date, source, link и image
  • Пример запроса
{
  "keyword": "Статья",
  "title": "Новости",
  "text": "Бла-бла-бла",
  "date": "Sun Feb 01 1998 00:00:00 GMT+0000 (GMT)",
  "source": "yandex",
  "link ": "https://yandex.ru",
  "image": "https://yandex.ru/img.jpg"
}
  • Пример ответа для неавторизованного пользователя
{
  "message": "Необходима авторизация"
}
  • Пример ответа для авторизованного пользователя в случае отстуствия ошибок валидации
{
  "message": "Статья успешно добавлена"
}
Метод Путь Описание
GET /articles Возвращает все сохранённые пользователем статьи
  • Пример ответа для неавторизованного пользователя
{
  "message": "Необходима авторизация"
}
  • Пример ответа для авторизованного пользователя
[
  {
      "_id": "5f6ce08e7d4b3b1844c5450b",
      "keyword": "Статья",
      "title": "Новости",
      "text": "Бла-бла-бла",
      "date": "Sun Feb 01 1998 00:00:00 GMT+0000 (GMT)",
      "source": "yandex",
      "link ": "https://yandex.ru",
      "image": "https://yandex.ru/img.jpg",
      "__v": 0
  }
]
Метод Путь Описание
DELETE /articles/:articleId Возвращает все сохранённые пользователем статьи
  • Пример ответа для неавторизованного пользователя, либо если пользователь пытается удалить не свою карточку
{
  "message": "Необходима авторизация"
}
  • Пример ответа в случае отсуствия статьи
{
  "message": "Нет статьи с таким id"
}
  • Пример ответа в случае успеха пользователя
{
  "message": "Карточка удалена"
}

Логгирование

В проекта настроено логгирование с помощью библиотеки winston и express-winston

Все логи сохраняются в папке ./logs в .json формате

Название файла Описание
request.log Хранит информацию о всех запросах к API
error.log Хранит информацию об ошибках, которые возвращало API

Отдельная благодарность:

Яндекс.Практикум

About

Бэкенд для проекта news explorer

Resources

Stars

Watchers

Forks

Packages

No packages published