November 26, 2013
As I told you before in my Hello World, again, I love APIs and the service oriented web. This is my first post on this topic and it is the beginning of a long series. I will sometimes make technical posts giving you hints and feedback on my work with APIs. Some others, like this one, may be a little more focused on the concepts and the ecosystem.
Let's start with a definition in order to be clear. API is the acronym for Application Programming Interface. It is a machine-to-machine protocol enabling any program to interact with one another and to exchange services. Basicaly, providing an API means providing the other developers with the ability to interact and use your service within theirs.
We can already find lots of APIs: each programming language, each framework, each information system provides one. For example, if you're a Java developer, you use the Java API when you write your code and the famous Javadoc is no more than this API's documentation.
I'm particularly interested in a more recent kind of APIs: the web APIs. They are simply APIs providing a web gateway, often using the HTTP protocol. The interactions have no limits!
Let's say you start building your own product. One of the common ways to get traction is to enable your users to share their thoughts about your service on the social networks and invite friends to try it. To do that, you pick one or several social networks (Facebook, Twitter, ... make your choice!) and use their API to access your users contacts lists and post on their feed.
If your product grows and produces interesting data, you can then build an API to provide this data to other services, grow your business and increase the interactions with your partners.
One of the main advantages of the API is that it enables the developers to focus on their own business, on their own product and delegate some of the work to other services.
Take a look at some of the new tech companies:
And the list can go on! A lot of complicated process can be handled with an API. It's not easy, it requires a good conception and it may shake some of our old habits but it helps us save time, money and efforts.
I strongly believe that the APIs are gonna change our world. And that they already started.
Moreover, I think that we, developers, will soon be able to shorten our development cycles and have a real gain in productivity simply by browsing the web and select a few APIs to back our products.
We can often find wrappers written in every programming language for the most common API.
You work with Java and the Twitter API? Get the Hosebird Client library and integrate it in your code in a breeze. You love Ruby and use Stripe? Pull the stripe-ruby library and start accepting payments.
I, myself, love building and discovering new APIs. I currently work on the Ubleam API which will enable you to create bleams and use the bleamapps we provide.
In future posts, I will try to cover the different ways to design your API and the technical standards of the web APIs.