REST API для внешних сервисов. Работа с заметками по Bearer-токену. Ответы в JSON, кодировка UTF-8.
https://notes.fuzehub.ru/apiВсе запросы выполняются относительно этого адреса. Для доступа к заметкам требуется авторизация по токену.
Доступ к API извне возможен только по токену. Сессия и cookie не используются.
POST /api/auth/login с телом {"login": "…", "password": "…"}.token и user_id.Authorization: Bearer <token>.Отзыв токена (токен удаляется и перестаёт действовать): POST /api/auth/logout с заголовком Authorization: Bearer <token>.
Список заметок текущего пользователя. Сортировка по дате обновления (новые выше).
Ответ 200:{
"data": [
{
"id": 2,
"title": "Вторая заметка",
"content": "Текст второй заметки.",
"created_at": "2026-01-28T14:00:00+00:00",
"updated_at": "2026-01-28T14:00:00+00:00"
},
{
"id": 1,
"title": "Первая заметка",
"content": "Текст заметки",
"created_at": "2026-01-28T12:00:00+00:00",
"updated_at": "2026-01-28T12:00:00+00:00"
}
]
}
Просмотр одной заметки по ID. Доступ только к своим заметкам.
Ответ 200:{
"data": {
"id": 1,
"title": "Заголовок",
"content": "Текст заметки",
"created_at": "2026-01-28T12:00:00+00:00",
"updated_at": "2026-01-28T12:00:00+00:00"
}
}
Ответ 404: {"error": "Заметка не найдена."}
Создание новой заметки.
Тело запроса (JSON):{
"title": "Заголовок",
"content": "Текст заметки"
}
title — обязательно, content — опционально.data.{"error": "Поле title обязательно."}
Обновление заметки. PUT и PATCH принимают те же поля. title обязательно при обновлении.
{
"title": "Новый заголовок",
"content": "Обновлённый текст"
}
Ответ 200: объект заметки в data.{"error": "Заметка не найдена."}
Удаление заметки. Доступ только к своим заметкам.
Ответ 204: пустое тело.{"error": "Заметка не найдена."}
Вход. Возвращает токен для последующих запросов.
Тело запроса (JSON):{
"login": "логин пользователя",
"password": "пароль"
}
Ответ 201:
{
"token": "строка-токен",
"user_id": 1
}
Ответ 401: {"error": "…"} — неверный логин или пароль.
Выход. Удаляет переданный токен — после вызова он перестаёт действовать.
Ответ 204: пустое тело.data).data).{"error": "текст"}.GET /api/ping — без авторизации. Ответ: {"ok": true, "api": "notes", "message": "API доступен"}