Redesigning the Netflix API: No Versions, Many Endpoints
blog.programmableweb.com
blog.programmableweb.com
If the NetFlix API had versions, you can quickly see how this would proliferate out of control. Devices from each class (assuming the versioning was done on a time release basis) would probably need to be supported for about 10 years (the expected lifetime of the device). This would mean NetFlix would end up supporting over a dozen versions just to keep its hardware partners happy.
Another solution would be to insist that all hardware accessing the API must be capable of being flash updated. This would allow NetFlix to insist on supporting each API version for only a limited amount of time (sufficient for the hardware to be updated just like any other software service).
NetFlix basically has the choice of dealing with the complexity internally or forcing the ecosystem to suck up the pain. Their choice will be driven more by business concerns (who needs who more in the relationship, what are each parties' options) than technical (what can we do given how much money we are willing to throw at the problem).
+ The iPhone may only show a few recommendations, while a TV may have several
| rows of movie suggestions in multiple categories. Yet, if those two devices
| are calling the same API, it will take perhaps a dozen requests for the TV
+ just to load the Netflix home screen.
... what's wrong with a simple n=count parameter in this case?So now you have GetFrobz and FetchFrobz and you need to tell everyone to not use GetFrobz in new applications.
This really does happen. The first example that comes to mind: is POSIX random numbers (rand,random,drand48), but there are loads of others anywhere that backwards compatibility is deemed important.