Cloud APIs are all about the endpoints: some services follow the  current trend of providing a RESTful end point, others use older  protocols such as RPC or SOAP, some use newer – push focused – endpoints  like WebSockets or HTTP Streaming, others may offer a number of  different endpoints to meet different requirements and some just use  what seems to be best for a specific job which might mean not strictly  following protocol rules. But is providing an endpoint to a service  alone good enough? Should a developer really have to care about how a  service is built or accessed when they can use a client library? 
This post was very much inspired by William Vambenepe’s blog post called Cloud APIs are like military parades which focuses on the current trend of REST APIs but it also covers some interesting questions and one very key one:
How many developers actually directly access an endpoint and how many access a service through a library?
So, should cloud services just be providing endpoints and relying on  community, open source and developers to build libraries that make  access to their service easier? Should they just provide samples or  small helper libraries? Or should a library be provide by the cloud  service vendor and be considered a key part of that service?
There may not be right or wrong answers to these question, it may  very well depend on the complexity involved in using the service API.

A look at the all time most popular APIs used by mashups in our API directory unsurprisingly lists Google Maps, Flickr, YouTube, Twitter, Amazon and Facebook. The most popular mashups listing also confirms this with a heavy focus on the mashups using mapping APIs.
Mapping APIs are quite complex due to the UI aspect of the service  and the majority of libraries are provided by the cloud service vendor.  Twitter has developed a large array of libraries built by an “ecosystem” of developers, Facebook provides a suite of SDKs and Tools, Flickr provides API Kits, the YouTube API consists of libraries for visual-oriented functionality and raw access to a data API and finally Amazon offer SDKs for access to AWS APIs and provide code samples for accessing their product advertising one.
Big cloud API players are clearly making an effort to give developers  a running start when using their APIs. In the majority of cases some  raw API access is available but samples, SDKs and libraries can be found  in abundance and have quite frequently been developed by the company  itself.
So, do cloud services offer API endpoints just to meet the needs of a  very small percentage of developers who want to make raw calls to an  API? Do they do it in order to enforce good development practice? Or is  the main benefit that it encourages developers and open source advocates  to get involved with a service and built a community? What do you  think?
Comments
Post a Comment