Imagine I have several pieces of chocolate (the Mrs. Sees type) sitting on a counter. I put them in a box, label them, and call them a new kind of food.
To a great extent, this is what application programming interfaces (API’s) are like.
API’s are basically collections of services, wrapped up in fancy packaging and sold (by some) as a new technology. Services have been around for a long time now, and the distinctions those pushing API’s claim exist between ‘traditional SOA’ and ‘API’ are often thin on substance.
One claim is the association of older service implementations with WSDL/SOAP/XML, while API’s are associated with REST and JSON. The word ‘associated’ makes sense here, since there is absolutely nothing that says services have to be either WSDL/SOAP/XML or REST/JSON, regardless of whether they are bundled into an API offering or not. These are just protocols, and the underlying concept of a service is not dependent on any particular protocol (some services are based on Remote Procedure Calls, for instance).
There is also the claim that API’s offer a more ‘relaxed’ and less stringent requirement set than SOA services. Again, nothing in the nature of services up to this time required any particular level of governance, and though WSDL/SOAP is more complicated than REST/JSON, we can refer back to the fact that WSDL/SOAP is not a requirement of a service. There should be concern over the idea that some developers are rhapsodizing about how API’s relax governance and ‘open up’ services to external entities—all you need to think about is how ‘relaxed’ the ACA healthcare site appears to be in this matter.
Another claim for the newness of API’s is that they are more external than ‘traditional’ SOA implementations. Again, there is nothing fundamental in this. Companies and government agencies have been exposing services externally for a long time. The fact that there is more of this is evolution, not something new.
Finally, API’s are being distinguished as being more of a ‘product’ than previous SOA offerings. This is true in terms of the how they are being sold and some of the covenants required of companies selling them, but technically it still isn’t anything new.
Basically, API’s are just the bundling of existing technology into a ‘box’ sold as a product.
If you’re someone thinking about API’s as a new and exciting technology, you should be careful not to purchase something at a higher price based solely on marketing. If the vendor is offering more guarantees and support for the consistency of the interface, then this may be worth more.
The ‘new’ concept of API’s should be considered carefully, and with a hard eye toward the essential value proposition. Principles of good software engineering and deployment must be adhered to… I’ll cover the fundamentals in my next post!
In the meantime, if you’re interested in learning more about the differences between SOA and APIs then check out this recent post.