Facebook only announces breaking changes to the Facebook API once per month, but this one is a doozy. Netflix explains its approach to the Netflix API and how it’s blurring the line between client and server. Plus: Washington Post tweets API-first, AT&T shares Watson API and “Twitter is a Corporate API.”
Facebook endeared itself to developers last year when it announced that “breaking changes” to the API would only go into effect one day per year and always mid-week. Every first Wednesday the changes take effect. Developers also learn what new stuff to prepare for in 90 days, the amount of notice the social network gives for breaking changes.
Looking back at completed changes, there was an unprecedented number in July. Most months only have two or three.
And it looks like there will be a lot of the same 90 days from now: there are seven on tap for October.
The key driver for this redesigned API is the fact that there are a range of differences across the 800+ device types that we support. Most APIs (including the REST API that Netflix has been using since 2008) treat these devices the same, in a generic way, to make the server-side implementations more efficient. And there is good reason for this approach. Providing a one size fits all (OSFA) API allows the API team to maintain a solid contract with a wide range of API consumers because the API team is setting the rules for everyone to follow.
While effective, the problem with the OSFA approach is that its emphasis is to make it convenient for the API provider, not the API consumer. Accordingly, OSFA is ignoring the differences of these devices; the differences that allow us to more optimally take advantage of the rich features offered on each.
The solution, which Jacobson details in the post, is to offer custom endpoints for each client. Accordingly, the line between server and client becomes blurrier than in most APIs. But the end result will allow Netflix to optimize to specific devices, while continuing to expand the options for Netflix subscribers.
Got something that should be in Today in APIs? Let us know and we’ll feature it tomorrow.