Question: Does the services module always invoke php to return data in json format? Is there anyway to cache the json output to be served for anonymous users (i.e. retrieve json data without invoking php)? First request will hit php and all subsequent hits should hit the cache.

My endpoint looks like this `api/anon` and it does not have any session authentication.

My request looks like this `http://localhost/api/anon/node/[nid]`

Thanks

Answer: 
I feel like something such as [Varnish](https://www.varnish-cache.org/) would be more suited to this than trying to do it all in Drupal. The stock varnish configuration does a pretty good job at caching content that the backend says is safe to cache.
For json response use rest server.

For static cache use boost module, for caching responses as static pages.