Введение — что именно нужно передать для публикации через REST API
Задача «публиковать контент через REST API» сводится к двум вещам: 1) какие поля и метаданные требуются целевой системе и 2) как передать эти данные безопасно. Ниже — краткий набор обязательных данных и практические рекомендации по их формату и защите.
FAQ — основные вопросы и короткие ответы
1. Какие базовые поля требуются для публикации поста?
Минимум для публикации статьи обычно включает:
- endpoint URL — адрес API (например, https://site.ru/wp-json/wp/v2/posts)
- authentication token/credentials — способ аутентификации
- title — заголовок
- content/body — тело статьи (HTML или Markdown)
- status — статус публикации (draft, publish)
- author_id — автор (id в CMS)
- categories/tags — категории и теги
- featured_media — id изображения или ссылка (если есть)
2. Какие дополнительные данные часто нужны для интеграций?
- slug — человекочитаемый URL
- excerpt — краткое описание (мета-анонса)
- meta — произвольные метаполя (SEO, кастомная логика)
- publish_date/time — планируемая публикация
- custom_fields — для CMS с кастомными полями
Примеры: REST API для публикации в WordPress и Tilda‑экспорт
CMS‑интеграция WordPress — что и как передавать
Для WordPress чаще всего используется REST endpoint /wp-json/wp/v2/posts. Пример минимального POST-запроса:
POST /wp-json/wp/v2/posts
Host: example.com
Authorization: Bearer <JWT_or_token>
Content-Type: application/json
{
"title": "Заголовок статьи",
"content": "<p>Текст статьи с HTML-разметкой</p>",
"status": "publish",
"slug": "primer-stati",
"categories": [2,5],
"excerpt": "Короткое описание"
}
Медиа закачивают отдельно в /wp-json/wp/v2/media (multipart/form-data). После успешной загрузки — в теле ответа вернётся id, который используется в поле featured_media у поста.
Tilda‑экспорт: что важно учитывать
Tilda‑экспорт бывает двух типов: 1) экспорт HTML/CSS/JS (ZIP) для размещения вне Tilda, 2) использование Tilda API для автоматизации создания/обновления контента. При экспорте в ZIP вы фактически переносите статические страницы — тогда REST-публикация сводится к загрузке файлов на сервер (SFTP/HTTP PUT) или в CDN. При использовании Tilda API передаются данные страницы в формате, предусмотренном документацией Tilda (JSON с блоками и параметрами).
Типичный набор для Tilda‑API:
- project_id / page_id
- blocks — массив блоков с их параметрами
- page_settings — мета/ключевые параметры страницы
- auth_token — ключ доступа
Если вы импортируете материалы из CMS в Tilda, обычно трансформируйте структуру: content → блоки, media → external URLs или загрузка в статический хранилище.
Аутентификация и безопасность: сравнение методов
| Метод |
Преимущества |
Недостатки |
Когда использовать |
| API ключи / токены (Bearer) |
Просто реализовать, широко поддерживается |
Если скомпрометирован — доступ постоянный; нужно ротация |
Сервер‑сервер, внутренние интеграции |
| OAuth2 (Client Credentials / Authorization Code) |
Короткоживущие токены, делегирование прав |
Сложнее для реализации |
Публичные интеграции, сторонние приложения |
| JWT |
Самодостаточный токен с payload |
Нужно корректно управлять временем жизни и ключами |
Когда важна переносимость контекста |
| HMAC / подпись запросов |
Защищает от подмены и replay при корректной реализации |
Нужно синхронизировать часы, реализовать nonce |
Финальные интеграции с повышенными требованиями |
Рекомендованные схемы для публикации
- Внутренние сервисы: Bearer token + TLS, ключи с минимальными правами
- Публичные интеграции: OAuth2 (Authorization Code) или short‑lived JWT
- Чувствительные операции (удаление/изменение прав): HMAC подпись или mTLS
Как безопасно передавать ключи и секреты
Принципы
- Всегда TLS (HTTPS). Без него любые токены легко перехватить.
- Не храните секреты в клиентском коде (браузер/мобильное приложение).
- Минимизируйте права токенов: принцип наименьших привилегий.
- Ротация ключей и автоматическое аннулирование при утечке.
- Логи без секретов: не пишите токены в лог-файлы.
Практическая схема безопасной передачи (сервер‑сервер)
- Ваш бэкенд хранит секреты в безопасном хранилище (Vault, KMS, environment vars с доступом по IAM).
- При необходимости публикации CMS‑запрос инициирует ваш сервис по HTTPS, передавая лишь идентификатор задачи.
- Сервис извлекает секрет и выполняет запрос к целевому API — без участия клиента.
Пример HMAC подписи для POST
Подпись = HMAC_SHA256(secret_key, method + "\n" + path + "\n" + body_hash + "\n" + timestamp)
Заголовки:
X-API-Key: public_id
X-Signature: Подпись
X-Timestamp: 2026-01-01T12:00:00Z
Сервер-получатель пересчитывает подпись и сверяет — предотвращает подлоги и replay.
Работа с медиаконтентом и большие объёмы данных
Лучше не отправлять большие файлы в теле запроса к публикации поста. Оптимальные схемы:
- Сначала загрузить медиа в облачное хранилище (S3/GCS) или WP media endpoint, получить ссылку/id;
- Во время публикации передать ссылку или id в поле featured_media;
- Для Tilda‑экспортов: прикрепить внешние URL или загружать в Tilda через их upload API.
Валидация и фильтрация контента — обязательные шаги
- На приёме: проверяйте schema JSON (title обязателен, content обязателен, allowed tags в HTML и т. д.).
- Санитизация HTML: удаляйте скрипты, inline event handlers, опасные iframes.
- Проверка типа media и размеров: блокируйте экзотические mime‑типы.
Кейсы и практические примеры
Кейс 1: Автоматическая публикация из редакционной системы в WordPress
Сценарий: редактор оформляет статью в CMS «Контент-Агент» → нажимает «Опубликовать в WP».
Реализация:
- CMS вызывает внутренний endpoint вашего бэкенда с id статьи.
- Бэкенд формирует payload по правилу WP, загружает любые изображения в /media и получает media_id.
- Создаёт пост в /wp-json/wp/v2/posts с Authorization: Bearer <server_token>.
- Результат: id WP возвращается в CMS для дальнейшей синхронизации.
Кейс 2: Экспорт из Tilda на сторонний сайт
Сценарий: нужно перенести лендинг из Tilda на корпоративный сайт.
Варианты:
- Скачать ZIP от Tilda и загрузить на сервер через SFTP/CI pipeline;
- Использовать Tilda API для получения JSON‑структуры и трансформировать в шаблоны вашего сайта.
Контроль доступа и мониторинг
Обязательно настроить:
- Audit logging — кто и когда публиковал;
- Rate limiting и throttling — предотвращение злоупотреблений;
- Alerting при ошибках аутентификации или аномалиях активности.
Короткий чеклист при настройке REST API для публикации
- Убедиться в наличии HTTPS на endpoint.
- Согласовать обязательные поля (title, content, status).
- Выбрать метод аутентификации и реализовать ротацию ключей.
- Реализовать загрузку медиа отдельно и ссылаться на id/URL.
- Проверять и санитизировать входящие данные перед публикацией.
- Настроить логирование, мониторинг и alerting.
Вывод
Для устойчивой и безопасной публикации через REST API нужны: чётко определённый набор полей (title, content, status, media и т.д.), надёжная схема аутентификации (предпочтительно short‑lived tokens/OAuth2), безопасное хранение секретов и отдельная загрузка медиа. Для CMS‑интеграции WordPress используйте стандартные WP endpoints и media workflow; при работе с Tilda учитывайте формат экспорта (ZIP vs API) и трансформацию блоков. Следуя приведённым примерам, таблицам сравнения и чеклисту, вы получите надёжную и повторяемую систему публикации без потери безопасности.