веб розробка

Створення Користувацького REST API Endpoint у WordPress за допомогою PHP

Розширення REST API WordPress шляхом створення власних endpoint може значно підвищити функціональність вашого сайту. Користувацькі endpoint дозволяють взаємодіяти з даними без обмежень стандартних API.

Чому Варто Створити Користувацький REST API Endpoint?

  • Доступ до Унікальних Даних – Доступ до специфічних даних, яких немає в стандартних API.
  • Інтеграція – Можливість підключення зовнішніх додатків і сервісів.
  • Оптимізація – Контроль за обсягом даних, що передаються, для підвищення продуктивності.

Необхідні Вимоги

  • Встановлений WordPress (локально або на сервері).
  • Базові знання PHP та WordPress розробки.
  • Дочірня тема або кастомний плагін (рекомендується для найкращих практик).

Крок 1: Реєстрація Користувацького Endpoint

Першим кроком є реєстрація вашого endpoint. Додайте цей код до файлу functions.php вашої теми або в кастомний плагін.

add_action('rest_api_init', 'register_custom_endpoint');

function register_custom_endpoint() {
    register_rest_route('custom/v1', '/data/', array(
        'methods' => 'GET',
        'callback' => 'handle_custom_data_request',
        'permission_callback' => '__return_true',
    ));
}

Пояснення

  • rest_api_init – Хук, який ініціалізує REST API.
  • register_rest_route – Реєструє новий маршрут REST.
    • 'custom/v1' – Простір імен/версія.
    • '/data/' – Слаг endpoint.
    • methods – HTTP метод (GET, POST тощо).
    • callback – Функція, яка обробляє запит.
    • permission_callback – Визначає, хто має доступ до endpoint.

Крок 2: Обробка API Запиту

Тепер створимо callback функцію, яка повертатиме дані при доступі до endpoint.

function handle_custom_data_request($request) {
    $data = array(
        'message' => 'Привіт, це користувацький API!',
        'time' => current_time('mysql'),
    );
    return rest_ensure_response($data);
}

Пояснення

  • handle_custom_data_request – Обробляє вхідні запити та повертає відповідь.
  • current_time('mysql') – Отримує поточний час у форматі MySQL.
  • rest_ensure_response – Забезпечує правильне форматування даних як REST відповідь

Крок 3: Тестування Endpoint

Після додавання коду, перейдіть за URL вашого сайту:

https://yoursite.com/wp-json/custom/v1/data/

Ви повинні побачити JSON відповідь, подібну до цієї:

{
  "message": "Привіт, це користувацький API!",
  "time": "2025-01-05 15:00:00"
}

Крок 4: Додавання Параметрів до Endpoint

Щоб зробити endpoint більш динамічним, додамо параметри.

register_rest_route('custom/v1', '/data/', array(
    'methods' => 'GET',
    'callback' => 'handle_custom_data_request_with_params',
    'permission_callback' => '__return_true',
    'args' => array(
        'name' => array(
            'required' => false,
            'validate_callback' => function($param, $request, $key) {
                return is_string($param);
            },
        ),
    ),
));

function handle_custom_data_request_with_params($request) {
    $name = $request->get_param('name');
    $message = $name ? "Привіт, $name!" : "Привіт, відвідуваче!";
    $data = array(
        'message' => $message,
        'time' => current_time('mysql'),
    );
    return rest_ensure_response($data);
}

Тестування параметра:

https://yoursite.com/wp-json/custom/v1/data/?name=John

Відповідь:

{
  "message": "Привіт, John!",
  "time": "2025-01-05 15:05:00"
}

Висновок

Створення користувацьких REST API endpoint у WordPress дозволяє гнучко взаємодіяти з даними та підключати зовнішні сервіси. Виконуючи цю інструкцію, ви зможете створити динамічні endpoint, що підвищать функціональність вашого сайту.

people discussing link building strategies for e-commerce

Лінкбілдинг для сайтів e-commerce

SEO для e-commerce є важливим аспектом розвитку бізнесу, оскільки велика частка онлайн-доходів залежить від залучення…

Read More

Лінкбілдинг для стартапів

Розпочати SEO-просування може бути складним завданням для будь-якого веб-сайту, особливо для стартапів, оскільки бренд ще…

Read More

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *