Ricerca…


introduzione

L'API REST di WordPress fornisce endpoint API per i tipi di dati di WordPress che consentono agli sviluppatori di interagire con i siti in remoto inviando e ricevendo oggetti JSON (JavaScript Object Notation).

Quando si invia il contenuto o si effettua una richiesta all'API, la risposta verrà restituita in JSON. Ciò consente agli sviluppatori di creare, leggere e aggiornare contenuti di WordPress da JavaScript lato client o da applicazioni esterne, anche quelli scritti in lingue diverse da PHP.

Osservazioni

Per ottenere questo semplice esempio dell'API REST di WordPress per te, devi imparare come funziona in modo più dettagliato. La documentazione ufficiale raccomanda di conoscere:

  1. Rotte / Endpoint - che sono mappature di singoli metodi HTTP a percorsi noti come "endpoint": lo fai usando la funzione register_rest_route () , e qui puoi trovare ulteriori informazioni su Rotte ed Endpoint .

  2. Richieste - L'API REST di WordPress definisce la classe WP_REST_Request che viene utilizzata per archiviare e recuperare informazioni per la richiesta corrente. WP_REST_Request oggetti WP_REST_Request vengono generati automaticamente quando si effettua una richiesta HTTP su una rotta registrata. I dati specificati nella richiesta determineranno la risposta che si ottiene dall'API. Qui puoi saperne di più sulla classe WP_REST_Request .

  3. Risposte - sono i dati che torni dall'API. WP_REST_Response fornisce un modo per interagire con i dati di risposta restituiti dagli endpoint. Nella definizione dell'endpoint, si chiama la funzione callback (risposta) per servire la propria interazione. Qui puoi saperne di più sulla classe WP_REST_Response .

  4. Schema: ogni endpoint richiede e fornisce strutture di dati leggermente diverse e tali strutture sono definite nello schema API. Se si desidera endpoint mantenibili, individuabili e facilmente estensibili, si consiglia di utilizzare lo schema. Qui puoi imparare di più sullo Schema .

  5. Classi di controller: riuniscono tutti gli elementi in un'unica posizione. Con una classe controller è possibile gestire la registrazione di route ed endpoint, gestire le richieste, utilizzare lo schema e generare risposte API. Hai già imparato a conoscere due classi di controller: WP_REST_Request e WP_REST_Response . Qui puoi imparare di più sulle Classi dei controller

Nota: alcune di queste informazioni sono tratte dal manuale ufficiale di Wordpress REST APi

Esempio di lavoro completo

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow