WordPress
API REST
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:
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 .
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
oggettiWP_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 .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 .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 .
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
eWP_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 );
}