APIs use to be a topic that I would shun away from anytime I would hear it mentioned. I knew it stood for “application programming interface”, but had no idea what it really meant or how it worked beyond that.
To put it in simple terms, APIs are part of an application or site that you can access and do what you want with it. That might mean being able to retrieve your facebook photos, or doing custom searches with Youtube.
Sure, you can do those things if you go to the sites, but having the ability to create your own applications or sites that integrate powerful technologies is a great asset. The biggest question is why would you need to use any of them.
I think the main reasons to use APIs are the following:
- link your daily activities and sites to share(facebook, music, youtube)
- make your service or product easier to use or find ( google maps, openID)
- increased site performance (Amazon S3, Atom API)
They are really useful for bringing together different technologies that have a synergistic effect.
Yes, you can go to google maps to find a company’s location, but it would be easier to see the map right on your site as you are browsing. Seeing a photographer’s portfolio would be much easier if they had their Flickr photos streamed into their site.
Using APIs are all about saving time by leveraging existing technologies. Save people a few clicks or extra windows in a browser and they will add value to your site experience.
Once you find a good reason to use an API, then you can do a little more research
What You Need to Know
APIs can’t do everything. They only expose part a database or functionality to be able to be worked with. Just because you have a great idea, doesn’t mean the API is going to be able to do what you want. Most of the big APIs have extensive documentation that outlines the different functions and methods that it can perform. APIs go through revisions and changes. A feature that isn’t supported now might be supported later this year.
A lot of APIs use 3rd party technologies like Flash, so you might have to download their API file that Flash/Flex can call things from. Even if you don’t have Flash, you can get free tools like FlashDevelop and the FlexSDKto help build web applications for free. I have yet to stumble across any paid APIs.
In terms of what you need to know. Understanding the basics like HTML and CSS are great. It is also essential to understand some object-oriented programming. Since APIs are part of a bigger program, they are made up of methods, functions and objects. Understanding the relationship between them and knowing how they work will great help. Knowing how many parameters objects take in with instantiation or how interfaces extend objects or super classes can help.
Documentation clarifies a lot of obstacles and problems, but it is good to know the different nomenclature that carries throughout the different APIs. It is difficult at first wrapping your mind around concepts like polymorphism, composition, or abstract classes, but in time they will make sense and it won’t be a barrier.