We are not caching our API responses (anymore), due to the fact that cache busting is an unresolved problem, still. We have tried Varnish cache and Redis as well as Couchbase (couchdb+membase). Varnish is the fastest one, Redis was the easiest one and Couchbase had best feature set.
But we couldn't solve the problem when cached entries in a distributed network need to be purged. After purging entries, we've experienced strange cache hits and misses regardless if the cache was cold still or warm already. Users had reported all kinds of unreproducible data issues. This caused us to decide to pull the plug off of API response cache stores.
Sure 13% of false positive cache hits/misses (very good 87% hits) is still better than 0% caching (for a bunch of web apps). But for financial systems even 1% wrong data is by far 1% too much of wrong data.
I suggest to start easy by using Redis. Was the easiest to install and configure. And all kind of tutorials these days are about Redis.
Edit: We do use e-tags for caching JSON response in the browser/client. Means that each client accessing the same URI will cause a re-computation on the backend. But each client will cache the response locally.