Документация по использованию АПИ приложения - RS Tasktracker.
Все запросы направляются по адресу: https://rsclone-back-end.herokuapp.com/
Далее в документации запросы будут описывать в таком виде: /api/auth/register.
Это подразумевает что в итоге у вас должен получится адрес вроде:
https://rsclone-back-end.herokuapp.com/api/auth/register
В данный момент, если вам пришел ответ с сервера в виде:
{
"message": "Got an error!"
}Прошу сообщить, в каком именно моменте вы это получается, так как это сигнал о неотловленной ошибке!
Опции запроса для регистрации:
url: /api/auth/register
method: POST
headers: { Content-Type: application/json }
body: { login, fullName, password }
Ответ с сервера при успешной регистрации:
{
"message": "User created!"
}Возможные ошибки:
{
"message": "This user has been registered!"
}{
"message": "Minimum number of characters 6!"
}{
"message": "Incorect data!"
}Опции запроса для авторизации:
url: /api/auth/register
method: POST
headers: { Content-Type: application/json }
body: { login, password }
Ответ при успешной аунтификации:
{
"email": "j@mail.ru",
"fullName": "john",
"boards": [
{
"_id": "6006c799da791d16982dfea5",
"name": "Board - 2"
},
{
"_id": "6006c79dda791d16982dfea6",
"name": "Board - 3.1"
}
],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2MDA2YmYyZjFkOGY5MDEzYmVkN2FiMGIiLCJpYXQiOjE2MTEwNTk2MjEsImV4cCI6MTYxMTA2MzIyMX0.vXSfTMXo8XKuxz8c_YSWz9we7shZg42pRlcPkTMQEF4",
"userId": "6006bf2f1d8f9013bed7ab0b"
}Возможные ошибки:
{
"message": "Incorect password!"
}{
"message": "User not found!"
}{
"message": "Incorect data!" // Временно, возможна доработка
}Так же были случаи когда имя почему то записывали массивом, по этому добавил такое:
{
"message": "Type of name must be string!"
}Далее для работы с досками/колонками/карточками необходимо отправлять токен в заголовках запроса, опишу в полях запроса ниже. Так же будет присутствовать специальный 'Refresh Token', для обновления 'Access token'а, жизнь токена для получания данных 4 часа. Жизнь рефреш токена 7 дней.
Если токен отсутствует в заголовках, то получаем такую ошибку:
{
"message": "You are not authorized!"
}Если получили ошибку:
{
"message": "Session timed out,please login again!"
}Это означает что рефреш токен уже мертв, и нужно авторизироваться повторно. Итак, когда у нас уже умер Access token, нам нужно его обновить, для этого отправляем такой запрос:
url: /api/auth/refresh_token
method: POST
headers: { Content-Type: application/json } приходит при авторизации
body: { refreshToken }
Где поле refreshToken - и является вашим рефреш токеном, и если запрос проходит успешно, то мы получаем новый токен:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2MDA2YmYyZjFkOGY5MDEzYmVkN2FiMGIiLCJpYXQiOjE2MTEzOTU2MjQsImV4cCI6MTYxMTQ4MjAyNH0.VxqiQz8f9F1HqE38tLhtjIOn7yGUidgoInYOixz7HAw"
}При передачи неверного рефреш токена получим:
{
"message": "Invalid token,please login again!"
}Если токен не был отправлен:
{
"message": "Access denied,token missing!"
}И если рефреш токен тоже мертв:
{
"message": "Token expired!"
}При выходе с аккаунта нужно передовать такой запрос:
url: /api/auth/logout
method: DELTE
headers: { Content-Type: application/json } приходит при авторизации
body: { userId }
Это сделанно для того что бы деактивировать рефреш токен на сервере. При успешном выходе получаем ответ:
{
"message": "User logged out!"
}Опции запроса для авторизации:
url: /api/board/
method: POST
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
body: { name }
Ответ при успешном создании доски:
{
"users": [
"6006bf2f1d8f9013bed7ab0b" // массив с id всех юзеров которые могут получить и использовать доску
],
"columns": [],
"_id": "60070ad3adc21d37e2d52e69", // id самой доски, для дальнейших манипуляций и получения
"name": "Board - 4"
}Возможные ошибки:
{
"message": "Can not find board!"
}{
"message": "The name can not contain invalid characters!"
}Вместо /:id подставляем id так /api/board/60070ad3adc21d37e2d52e69 (пример).
url: /api/board/:id
method: GET
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
Ответ при успешном получении доски:
{
"users": [
{
"_id": "6006bf2f1d8f9013bed7ab0b",
"email": "j@mail.ru",
"fullName": "john"
}
],
"columns": [
{
"position": 0,
"cards": [
{
"position": 0,
"_id": "6007d49c0c3d1f49a7fe1cec",
"name": "Card - 1. Column - 0.Board - 2.",
"columnId": "6006d1ec6fd4c32099773add"
}
],
"_id": "6006d1ec6fd4c32099773add",
"name": "Column - 2. Board - 2",
"boardId": "6006c799da791d16982dfea5"
}
],
"_id": "6006c799da791d16982dfea5",
"name": "Board - 2"
}Возможные ошибки:
{
"message": "Can not find board!"
}url: /api/board/
method: GET
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
Ответ при успешном запросе:
[
{
"_id": "6006c799da791d16982dfea5",
"name": "Board - 2"
},
{
"_id": "6006c79dda791d16982dfea6",
"name": "Board - 3.1"
},
{
"_id": "60070ad3adc21d37e2d52e69",
"name": "Board - 4"
}
]url: /api/board/
method: PUT
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
body: { name }
Ответ при успешной смене названия доски:
{
"_id": "6006c799da791d16982dfea5",
"name": "Board - 2.1"
}Оговорка, вы не удаляете доску сразу, а покидаете ее, и в том случае если в доске не останется не одного пользователя, то она автоматически удалится с базы данных.
url: /api/board/:id
method: DELETE
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
При успешном покидании доски ответ будет таким:
{
"message": "You have successfully left the board!"
}Возможные ошибки:
{
"message": "Can not find board!"
}boardId это id доски в которой создается колонка, параметр обязателен! Опции запроса для авторизации:
url: /api/column/
method: POST
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
body: { name, boardId }
Ответ при успешном создании доски:
{
"cards": [],
"_id": "6007e350d1e5955028369500",
"name": "Column - 1. Board - 3",
"boardId": "6006c79dda791d16982dfea6"
}Возможные ошибки:
{
"message": "Can not find board!"
}{
"message": "The name can not contain invalid characters!"
}Вместо /:id подставляем id так /api/board/6007e350d1e5955028369500 (пример).
url: /api/column/:id
method: GET
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
Ответ при успешном получении доски:
{
"cards": [
{
"_id": "6007e3b6d1e5955028369501",
"name": "Card - 1. Column - 0.Board - 3.",
"columnId": "6007e350d1e5955028369500"
}
],
"_id": "6007e350d1e5955028369500",
"name": "Column - 1. Board - 3",
"boardId": "6006c79dda791d16982dfea6"
}Возможные ошибки:
{
"message": "Can not find column!"
}При обновлении позиции калонку, меняется ее место в массиве колонок в доске.
url: /api/column/:id
method: PUT
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
body: { name, position }
Пи успешном обновлении ответ будет таким:
{
"cards": [
"6007e3b6d1e5955028369501"
],
"_id": "6007e350d1e5955028369500",
"name": "Column - 1.1. Board - 2",
"boardId": "6006c79dda791d16982dfea6"
}Возможные ошибки:
{
"message": "Can not find column!"
}url: /api/column/:id
method: DELETE
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
При успешном покидании доски ответ будет таким:
{
"message": "Column has been deleted!"
}Возможные ошибки:
{
"message": "Can not find column!"
}columnId это id колонки в которой создается карточка, параметр обязателен! Опции запроса для авторизации:
url: /api/cards/
method: POST
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
body: { name, columnId }
Ответ при успешном создании карточки:
{
"_id": "6007e350d1e5955028369500",
"name": "Card - 1. Column - 1",
"columnId": "6006c79dda791d16982dfea6"
}Возможные ошибки:
{
"message": "Can not find column!"
}{
"message": "The name can not contain invalid characters!"
}Вместо /:id подставляем id так /api/cards/6007e350d1e5955028369500 (пример).
url: /api/cards/:id
method: GET
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
Ответ при успешном получении доски:
{
"_id": "6007d49c0c3d1f49a7fe1cec",
"name": "Card - 1. Column - 0.Board - 2.",
"columnId": "6006d1ec6fd4c32099773add"
}Возможные ошибки:
{
"message": "Can not find card!"
}Поля не обязательные, но должно присутствовать хотя бы одно. Для смены позиции карточки, обязательно должны присутствовать поля columnId и position!
url: /api/cards/:id
method: PUT
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
body: { name, position, content, columnId }
{
"_id": "6007d49c0c3d1f49a7fe1cec",
"name": "new name",
"columnId": "6006d1ec6fd4c32099773add",
"content": "new content"
}
url: /api/cards/:id
method: DELETE
headers: { Content-Type: application/json, Authorization: Bearer TOKEN } // Вместо TOKEN, вставляем код с поля token которое приходит при авторизации
При успешном покидании доски ответ будет таким:
{
"message": "Card has been deleted!"
}Возможные ошибки:
{
"message": "Can not find card!"
}