Освоение WordPress REST API: изучение обратного вызова разрешения «register_rest_route»

В этой статье мы погрузимся в мир WordPress REST API и исследуем параметр «permission_callback» функции «register_rest_route». Мы обсудим его цель, важность и различные методы его эффективного использования в ваших проектах разработки WordPress. Кроме того, мы предоставим примеры кода для демонстрации каждого метода. К концу этой статьи вы получите полное представление о том, как использовать обратный вызов разрешения «register_rest_route» для безопасной и эффективной разработки API в WordPress.

  1. Метод 1: базовый обратный вызов разрешений
    Самый простой способ определить обратный вызов разрешений — использовать вызываемую функцию. Функция обратного вызова должна возвращать «истину», если у пользователя есть необходимое разрешение, или «ложь» в противном случае. Вот пример:
function my_permission_callback() {
    // Perform necessary permission checks
    if (current_user_can('edit_posts')) {
        return true;
    }
    return false;
}
add_action('rest_api_init', function () {
    register_rest_route('myplugin/v1', '/endpoint', [
        'methods' => 'GET',
        'callback' => 'my_callback_function',
        'permission_callback' => 'my_permission_callback',
    ]);
});
  1. Метод 2: анонимная функция
    Вместо определения отдельной функции для обратного вызова разрешения вы можете напрямую использовать анонимную функцию. Вот пример:
add_action('rest_api_init', function () {
    register_rest_route('myplugin/v1', '/endpoint', [
        'methods' => 'GET',
        'callback' => 'my_callback_function',
        'permission_callback' => function () {
            // Perform necessary permission checks
            if (current_user_can('edit_posts')) {
                return true;
            }
            return false;
        },
    ]);
});
  1. Метод 3: Метод класса
    Если вы предпочитаете объектно-ориентированное программирование, вы можете использовать метод класса в качестве обратного вызова разрешения. Вот пример:
class My_REST_Endpoint {
    public function permission_callback() {
        // Perform necessary permission checks
        if (current_user_can('edit_posts')) {
            return true;
        }
        return false;
    }
    public function register_routes() {
        register_rest_route('myplugin/v1', '/endpoint', [
            'methods' => 'GET',
            'callback' => [$this, 'my_callback_function'],
            'permission_callback' => [$this, 'permission_callback'],
        ]);
    }
}
$my_endpoint = new My_REST_Endpoint();
add_action('rest_api_init', [$my_endpoint, 'register_routes']);

Параметр «permission_callback» функции «register_rest_route» играет решающую роль в контроле доступа к конечным точкам REST API WordPress. В этой статье мы рассмотрели три различных метода определения обратного вызова разрешений, включая использование вызываемой функции, анонимной функции и метода класса. В зависимости от ваших предпочтений в кодировании и требований проекта вы можете выбрать наиболее подходящий метод для ваших нужд разработки API. Реализовав надлежащие проверки разрешений, вы можете обеспечить безопасность и целостность вашего REST API WordPress.