Building Applications Programming Interfaces for the Future
Most code can be revised, since whether it changes internally or not has little impact on outsiders. Applications Programming Interfaces (APIs) are different; they are the quintessential “outside face,” providing outside groups with the contract for interaction. In both technology and biology, internal mechanisms evolve; interfaces are conserved. If new and improved interfaces never supplant established interfaces, how can both new and improved interfaces continue to coexist? Release is merely the first step of a gradual, painful, never-ending process. Complete replacement is never achieved. We will examine this issue and ways to avoid "rebooting" APIs.
Even more fundamentally, there are a variety of issues which must be addressed when defining an API. Many teams bog down on questions of mere syntax (e.g... JSON vs. XML) rather than the far more fundamental questions of interface semantics (e.g., policy issues). In the long-term, questions of syntax have relatively little relevance. Questions of semantics (e.g., what constitutes a valid request, is a request proper, are there appropriate security and integrity measures) are far more critical.
|Session Notes:||Color||Black & White|