К 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 |