Перейти до основного вмісту

Як створити матеріал у Joomla 6 через REST API

Joomla має вбудований Web Services API, за допомогою якого зовнішні програми, скрипти та сервіси можуть працювати з даними сайту через HTTP-запити. Один із практичних сценаріїв — автоматичне створення матеріалів без входу до панелі адміністратора.

У цьому прикладі розглянемо створення матеріалу в Joomla 6 через REST API: підготуємо API Token, сформуємо endpoint, відправимо JSON-запит та перевіримо роботу через Postman або cURL.

Що таке REST API у Joomla 6

Web Services API дозволяє зовнішнім системам взаємодіяти з Joomla через визначені API endpoints. Замість прямої роботи з базою даних клієнт відправляє HTTP-запит до Joomla, а CMS самостійно виконує перевірку автентифікації, прав доступу та отриманих даних.

Через API можна, зокрема:

  • отримувати матеріали;
  • створювати нові матеріали;
  • змінювати існуючі матеріали;
  • видаляти матеріали;
  • будувати інтеграції Joomla із зовнішніми системами.

Для створення матеріалу використовується HTTP-метод POST.

Що потрібно для роботи

Перед відправленням першого запиту необхідно підготувати:

  • сайт на Joomla 6;
  • користувача Joomla з необхідними правами;
  • API Token цього користувача;
  • ID категорії, у якій буде створено матеріал;
  • URL сайту;
  • HTTP-клієнт, наприклад Postman або cURL.

Важливо. API виконує операції з правами користувача, якому належить токен. Тому для інтеграції краще використовувати окремого користувача та надати йому лише необхідні дозволи.

URL Joomla API

Базова адреса Web Services API формується від домену сайту. Наприклад, для:

https://example.org

базовий URL API буде:

https://example.org/api/index.php/v1

Для роботи з матеріалами використовується endpoint:

content/articles

Повна адреса для створення матеріалу:

https://example.org/api/index.php/v1/content/articles
Автентифікація через API Token

Захищені API-запити повинні виконуватися від імені користувача Joomla, який має відповідні права доступу.

Для стандартної автентифікації за API Token токен передається в HTTP-заголовку:

X-Joomla-Token: YOUR_API_TOKEN

Для JSON-запиту також використовуються заголовки:

Accept: application/vnd.api+json
Content-Type: application/json
X-Joomla-Token: YOUR_API_TOKEN

Ніколи не публікуйте API Token. Не додавайте його до відкритого Git-репозиторію, frontend JavaScript або іншого коду, доступного відвідувачам сайту.

Створення матеріалу через REST API

Для створення нового матеріалу необхідно відправити POST-запит на:

https://example.org/api/index.php/v1/content/articles

Дані матеріалу передаються в JSON. Приклад базового набору полів:

{
    "title": "Матеріал створений через Joomla API",
    "alias": "material-stvorenyi-cherez-joomla-api",
    "articletext": "<p>Цей матеріал створено через Joomla REST API.</p>",
    "catid": 2,
    "language": "*",
    "metadesc": "",
    "metakey": ""
}

Значення catid: 2 наведено лише як приклад. У запиті потрібно передати ID реально існуючої категорії вашого сайту.

Основні поля матеріалу
Поле Призначення
title Назва матеріалу.
alias Alias матеріалу, який Joomla може використовувати при формуванні URL.
articletext Основний вміст матеріалу. Значення може містити HTML.
catid ID категорії Joomla.
language Мова матеріалу. Значення * означає всі мови.
metadesc Meta Description матеріалу.
metakey Meta Keywords.
Створення матеріалу через Postman

Для перевірки API без написання окремої програми зручно використовувати Postman.

  1. Створіть новий запит та виберіть метод POST.
  2. Вкажіть адресу:
    https://example.org/api/index.php/v1/content/articles
  3. Додайте HTTP-заголовки:
    Accept: application/vnd.api+json
    Content-Type: application/json
    X-Joomla-Token: YOUR_API_TOKEN
  4. У розділі Body виберіть raw → JSON.
  5. Передайте JSON із даними матеріалу:
    {
        "title": "Тестовий матеріал Joomla API",
        "alias": "testovyi-material-joomla-api",
        "articletext": "<p>Матеріал створено через API.</p>",
        "catid": 2,
        "language": "*",
        "metadesc": "",
        "metakey": ""
    }
  6. Натисніть Send.

Якщо endpoint, токен, права користувача та передані дані коректні, Joomla обробить запит і поверне відповідь API.

Створення матеріалу за допомогою cURL

Той самий запит можна виконати з командного рядка:

curl -X POST "https://example.org/api/index.php/v1/content/articles" \
-H "Accept: application/vnd.api+json" \
-H "Content-Type: application/json" \
-H "X-Joomla-Token: YOUR_API_TOKEN" \
-d '{
    "title": "Матеріал створений через Joomla API",
    "alias": "material-stvorenyi-cherez-joomla-api",
    "articletext": "<p>Цей матеріал створено через Joomla REST API.</p>",
    "catid": 2,
    "language": "*",
    "metadesc": "",
    "metakey": ""
}'

Замініть example.org на домен свого сайту, YOUR_API_TOKEN — на реальний API Token, а catid — на ID потрібної категорії.

Типові помилки REST API
HTTP-код Що перевірити
400 Коректність JSON та наявність даних, які очікує API endpoint.
401 API Token та заголовок автентифікації.
403 Права користувача, ACL та дозволи на роботу з потрібною категорією.
404 URL API та правильність endpoint.
Безпека Joomla REST API

API Token фактично дозволяє виконувати дії від імені користувача, тому доступ до нього потрібно захищати так само уважно, як облікові дані адміністратора.

  • використовуйте HTTPS;
  • не передавайте токен у frontend-код;
  • не публікуйте токен у Git;
  • створюйте для інтеграцій окремих користувачів;
  • надавайте API-користувачу лише необхідні ACL-права;
  • у разі витоку токена замініть або відкличте його;
  • перевіряйте інтеграцію на тестовому сайті перед запуском у production.
Де це можна використовувати

Створення матеріалів через API особливо корисне там, де контент надходить із зовнішньої системи або повинен створюватися автоматично.

Наприклад:

  • імпорт матеріалів з іншої CMS;
  • синхронізація з внутрішньою системою компанії;
  • автоматичне формування контенту зі стороннього сервісу;
  • власна адміністративна програма для роботи з Joomla;
  • інтеграція мобільного або вебзастосунку з Joomla.
Висновок

Вбудований REST API Joomla дозволяє створювати матеріали без прямого доступу до бази даних та без автоматизації панелі адміністратора. Для створення матеріалу достатньо сформувати POST-запит до content/articles, передати API Token у заголовку X-Joomla-Token та відправити дані матеріалу у форматі JSON.

На основі цього механізму можна будувати імпорт контенту, інтеграції із зовнішніми сервісами та власні інструменти автоматизації Joomla.


Використані джерела:
Joomla Programmers Documentation — Web Services
JoomTech Solutions — How to Create Articles with the Joomla 6 REST API

Зв'язатися зі мною

Залиште свої контакти, і я зв'яжуся з вами найближчим часом.