Recherche…


Introduction

L'API WordPress REST fournit des points de terminaison API pour les types de données WordPress qui permettent aux développeurs d'interagir avec des sites à distance en envoyant et en recevant des objets JSON (JavaScript Object Notation).

Lorsque vous envoyez du contenu à ou faites une demande à l'API, la réponse sera renvoyée dans JSON. Cela permet aux développeurs de créer, lire et mettre à jour le contenu WordPress à partir de JavaScript côté client ou d'applications externes, même celles écrites dans des langages autres que PHP.

Remarques

Pour que cet exemple simple de WordPress REST API fonctionne pour vous, vous devez apprendre comment cela fonctionne plus en détail. La documentation officielle recommande d'apprendre sur:

  1. Routes / points de terminaison - qui sont des mappages de méthodes HTTP individuelles sur des itinéraires appelés "points de terminaison" - vous le faites en utilisant la fonction register_rest_route () , et vous trouverez ici plus d'informations sur les routes et les points de terminaison.

  2. Requêtes - L'API WordPress REST définit la classe WP_REST_Request qui permet de stocker et d'extraire des informations pour la requête en cours. WP_REST_Request objets WP_REST_Request sont automatiquement générés à chaque fois que vous effectuez une requête HTTP sur un itinéraire enregistré. Les données spécifiées dans la demande détermineront la réponse que vous récupérerez de l'API. Ici, vous pouvez en apprendre plus sur la classe WP_REST_Request .

  3. Réponses - sont les données que vous recevez de l'API. WP_REST_Response permet d'interagir avec les données de réponse renvoyées par les points de terminaison. Dans votre définition de noeud final, vous nommez la fonction de rappel (réponse) pour servir votre interaction. Ici, vous en apprendrez plus sur la classe WP_REST_Response .

  4. Schéma - Chaque noeud final requiert et fournit des structures de données légèrement différentes, et ces structures sont définies dans le schéma de l'API. Si vous voulez des points de terminaison maintenables, détectables et facilement extensibles, il est recommandé d'utiliser le schéma. Ici vous pouvez en apprendre plus sur le schéma .

  5. Classes de contrôleurs - elles rassemblent tous les éléments en un seul endroit. Avec une classe de contrôleur, vous pouvez gérer l'enregistrement des itinéraires et des points de terminaison, gérer les demandes, utiliser un schéma et générer des réponses API. Vous avez déjà WP_REST_Request parler de deux classes de contrôleurs: WP_REST_Request et WP_REST_Response . Ici vous pouvez en apprendre plus sur les classes de contrôleur

Note: Certaines de ces informations proviennent du manuel officiel Wordpress REST APi

Exemple de travail complet

add_action('rest_api_init', 'my_rest_validate_endpoint' );
function my_rest_validate_endpoint() {

    // Declare our namespace
    $namespace = 'myrest/v1';

    // Register the route
    // Example URL matching this route:
    // http://yourdomain/wp-json/myrest/v1/guides/tag=europe/price=29
    register_rest_route($namespace,
                        // Using regular expressions we can initially validate the input
                        '/guides/tag=(?P<tag>[a-zA-Z0-9-]+)/price=(?P<price>[0-9]+)',
                        // We can have multiple endpoints for one route
                        array(
                            array(
                                'methods'   => 'GET',
                                'callback'  => 'my_get_guides_handler'
                            )
                        ),
                        // We can register our schema callback
                        // 'schema' => 'my_get_guide_schema',
                
        );

    // You can register another route here the same way

}


// The callback handler for the endpoint
function my_get_guides_handler(WP_REST_Request $request) {

    // Get the parameters:
    $tag = $request->get_param('tag');
    $price = $request->get_param('price');

    // Do something with the parameters
    // for instance: get matching guides from the DB into an array - $results
    // ...
    
    // Prepare the response
    $message = "We've found " . count($results) . " guides ";
    $message .= "(searching for a tag: " . $tag . ", with a price tag: " . $price . ")";

    // The response gets automatically converted into a JSON format
    return new WP_REST_Response(
        array(
            'results' => $results,
            'message' => $message,
            'status' => 'OK'
        ),
        200 );

}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow