We are getting slow responses to our JSON api after installing JSON API for WordPress. We use W3 total Cache and are looking for some help with caching calls after /api/. 
Does anyone know the best way to do this?			
John Cotton answers:
								I don't use either of those plugins but a well-structured  cache set up should look something like this:
	function get_my_cache_value() {
		$x = get_transient( 'x_value' );
		if ( !$x ) {
			$x = my_expensive_x_calc();
			set_transient( 'x_value', $x, 60 * 60 * 24 ); // vary the time if you need to
		}
		return $x;
	}
W3TC should play nicely with this, but there are reports otherwise: 
https://wordpress.org/support/topic/self-diagnosed-and-fixed-w3-total-cache-bug-in-faulty-object-caching
							
jackstin comments:
Yeah im looking into this at the moment - [[LINK href="https://wordpress.org/support/topic/patch-adding-caching-benchmarking-and-setting-change-notices"]][[/LINK]]
jackstin comments:
https://wordpress.org/support/topic/patch-adding-caching-benchmarking-and-setting-change-notices
jackstin comments:
										We found some code that works - https://gist.github.com/KATT/3349372
define.php
<?php
/**
 * Check if content is JSON
 *
 * @param string $content
 * @return boolean
 */
function w3_is_json($content) {
    return json_decode($content) !== NULL;
}
 
/**
 * Check if content is JSONP
 *
 * @param string $content
 * @return boolean
 */
function w3_is_jsonp($content) {
    // Extract json
    $stripped = preg_replace("/^\s*\w+\s*\(/", "", $content);
    $stripped = preg_replace("/\)\s*$/", "", $stripped);
    return w3_is_json($stripped);
}