One strategy
employed by Netflix is to introduce a second API layer
<
http://techblog.netflix.com/2012/07/embracing-differences-inside-netflix.ht…
on
top of the general content API to handle device-specific needs. I think
this is a sound strategy, as it contains the volatility in a separate layer
while ensuring that everything is ultimately consuming the general-purpose
API.
This design appears often enough that it can likely be called a "design
pattern". The Selenium/Webdriver project did exactly the same thing[1].
The API for Selenium v2 has about 1/3 as many functions as Selenium v1.
People that use Selenium v2 build their own high-level APIs based on the
basic core set of functions available.
Defining the scope of the "general content API" can be challenging.
[1]
http://w3c.github.io/webdriver/webdriver-spec.html