As applications become more useful to our everyday lives, they grow to become even more and more complex. Web applications often do tons of things, combining information in all kinds of interesting and useful ways. The increasing functionality of today's web puts a strain on developers trying to make everything run faster, smarter, and do more without melting servers in the process.
While some developers choose to create their own solutions, opting for more control and tighter integration with the rest of their app, many developers have chosen to "outsource" parts of their web applications to publicly available APIs. Almost every major information-centric service has opened up their system, via an API, to allow developers to leverage what they have to offer. What's out there is practically limitless and really gives developers a great deal of potential to build upon.
When developing your application, you should look to see what parts of your application could be better handled by another service. For example, if your web application grabs a user's location and shows a list of coffee shops nearby, you may want to leverage the Foursquare API or Gowalla API. Both companies have been building up a massive database of location data over the last few years. Why not leverage their APIs and let them do the hard work?
If you prefer to develop your own solutions, that's great. There's nothing wrong with it. Especially if you feel like you can do it better. Innovation is all about the better mousetrap. But consider the advantages to using APIs to power your web application.
It's cheaper — Many APIs are freely available. Consider the costs of developing your own mapping system versus leveraging Google Maps or Bing Maps. I can almost guarantee you the savings is enough to build your own Jurassic Park.
The work is (practically) done for you — Sure you could develop your own database of DVDs and collect tons of information on each movie in existence, but Amazon has already done this, and really doesn't mind sharing this information with your app, as long as enough look-ups turn to sales.
You can get up and running faster — If you're a startup, you may be working on borrowed time to get your app out and in to the hands of the masses. Leveraging the resources of the web may help save you months of development time.
While using APIs is a great idea, there are some things to be cautious about. Most importantly, you should always be concerned with how reliable the service you're piggy-backing off of is. Ask any developer who's been relying on Twitter APIs over the last few months and they'll share many horror stories of service outages and various other problems. This brings up another thing worth noting. It's not the service's responsibility to keep your app operational. A service can shut down or limit how you use its API at any time. Going back to Twitter, it recently stopped allowing basic authentication to its API, causing a few (very outdated, mind you) applications to stop working.
Where to Begin
- Infrastructure APIs: New Site in a Box
- Marketing APIs: Promotional Site in a Box
- E-Commerce APIs: Store Site in a Box