How to stop WP API endpoint from caching?

I have a simple endpoint. Its GET, I pass it an ID parameter and it uses this ID to make a curl call. The endpoint then responds with a couple pieces of info json_encoded.

The issue is that this endpoint keeps caching its results. How do I keep this from happening?

Couple notes:

  1. No caching plugins installed
  2. WP config doesn’t note caching

The endpoint code is pretty 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);
}

I call the endpoint via jQuery ajax.

3 Answers
3

If you have access to your request header you can add the line.
Cache-Control: private or Cache-Control: no-cache. This will force well-behaved hosts to send you fresh results.

Leave a Comment