J'ai un point d'extrémité simple. Son GET, je lui passe un paramètre ID et il utilise cet ID pour effectuer un appel curl. Le noeud final répond ensuite avec quelques informations json_encoded.
Le problème est que ce noeud final continue à mettre en cache ses résultats. Comment puis-je empêcher que cela se produise?
Notes de couple:
Le code du noeud final est assez simple:
// Get Number of people in line
add_action( 'rest_api_init', function () {
register_rest_route( 'cc/v1', '/in_line/(?P<id>\d+)', array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'in_line',
'args' => [
'id'
],
) );
} );
function in_line($data) {
//Do a bunch of Curl stuff
$response['queue'] = $number;
$response['queueID'] = $data['id'];
return json_encode($response);
}
J'appelle le point final via jQuery ajax.
Si vous avez accès à l'en-tête de votre demande, vous pouvez ajouter la ligne. Cache-Control: private
ou Cache-Control: no-cache
. Cela forcera les hôtes bien éduqués à vous envoyer de nouveaux résultats.
Vous devez créer une nouvelle instance à partir de WP_REST_Response
pour définir la valeur Cache-Control.
<?php
// Get Number of people in line
add_action( 'rest_api_init', function () {
register_rest_route( 'cc/v1', '/in_line/(?P<id>\d+)', array(
'methods' => WP_REST_Server::READABLE,
'callback' => 'in_line',
'args' => [
'id'
],
) );
} );
function in_line($data) {
//Do a bunch of Curl stuff
$response['queue'] = $number;
$response['queueID'] = $data['id'];
$result = new WP_REST_Response($response, 200);
// Set headers.
$result->set_headers(array('Cache-Control' => 'no-cache'));
return $result;
}