Документация API

REST API для внешних сервисов. Работа с заметками по Bearer-токену. Ответы в JSON, кодировка UTF-8.

Базовый URL

https://notes.fuzehub.ru/api

Все запросы выполняются относительно этого адреса. Для доступа к заметкам требуется авторизация по токену.

Авторизация (для внешних клиентов)

Доступ к API извне возможен только по токену. Сессия и cookie не используются.

  1. Вызовите POST /api/auth/login с телом {"login": "…", "password": "…"}.
  2. В ответе получите token и user_id.
  3. В каждом запросе к заметкам передавайте заголовок: Authorization: Bearer <token>.

Отзыв токена (токен удаляется и перестаёт действовать): POST /api/auth/logout с заголовком Authorization: Bearer <token>.

Эндпоинты

GET /api/notes Bearer токен

Список заметок текущего пользователя. Сортировка по дате обновления (новые выше).

Ответ 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"
    }
  ]
}
GET /api/notes/{id} Bearer токен

Просмотр одной заметки по 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": "Заметка не найдена."}
POST /api/notes Bearer токен

Создание новой заметки.

Тело запроса (JSON):
{
  "title": "Заголовок",
  "content": "Текст заметки"
}
title — обязательно, content — опционально.
Ответ 201: объект заметки в data.
Ответ 400: {"error": "Поле title обязательно."}
PUT / PATCH /api/notes/{id} Bearer токен

Обновление заметки. PUT и PATCH принимают те же поля. title обязательно при обновлении.

Тело запроса (JSON):
{
  "title": "Новый заголовок",
  "content": "Обновлённый текст"
}
Ответ 200: объект заметки в data.
Ответ 404: {"error": "Заметка не найдена."}
DELETE /api/notes/{id} Bearer токен

Удаление заметки. Доступ только к своим заметкам.

Ответ 204: пустое тело.
Ответ 404: {"error": "Заметка не найдена."}
POST /api/auth/login Получение токена

Вход. Возвращает токен для последующих запросов.

Тело запроса (JSON):
{
  "login": "логин пользователя",
  "password": "пароль"
}
Ответ 201:
{
  "token": "строка-токен",
  "user_id": 1
}
Ответ 401: {"error": "…"} — неверный логин или пароль.
POST /api/auth/logout Authorization: Bearer

Выход. Удаляет переданный токен — после вызова он перестаёт действовать.

Ответ 204: пустое тело.

Коды ответов и ошибки

Проверка доступности

GET /api/ping — без авторизации. Ответ: {"ok": true, "api": "notes", "message": "API доступен"}