Even though a lot of developers and coders do not see themselves as creators of APIs (application programming interfaces), in actual practice most of them do deal with this issue in their web design work. Internet applications are increasingly modular in their structure, which means that you typically do not start developing new solutions from scratch, but rely on units and components that have been tested before.This standardized, reusable software architecture makes it easier to put together the functionality you want as you have greater control over which units to bring in, which units to leave out and which units to extend.
The quality of this process depends largely on the quality of your API, which is why it is so important to design it right the first time. If your interface is successful, effective in delivering functional solutions fast, it is not only you and your staff who are going to take advantage of its features, but possibly outsiders too, creating commercial potential. In the end, everybody wants to have a powerful instrument to express intentions to the computer.
It is Google’s Joshua Bloch who set the benchmark for designing a good API in his extremely popular presentation on the topic, which is still available on the Web. Some software designers, like Piwik’s developers, have taken his advice very seriously and take care to create their applications so that they fit the best API practice. In fact, this innovative web analytics package takes to idea of APIs one step further by opening it up for users so that they can have greater access to and control of their Internet data.
What is this good practice in API design then?
First, the entire architecture should be as easy to learn and use as possible so that developers and coders have no difficulty implementing their ideas, ideally even without documentation that takes them step by step though the process. In other words, APIs should be built for intuitive use. What follows is that their components and commands should not be too hard to memorize and come back to after a break.
Second, they should be designed in such a way that their structure discourages or even disables misapplication, ensuring a greater level of comfort for coders. Software development architecture ridden with error potential can get very frustrating, even with experienced practitioners. It is also connected with the ability of users to maintain and read the code so that it continues to serve its purpose.
Third, there is no reason to build an API which is too powerful or complex for your needs. It should give you just enough flexibility and freedom to perform essential tasks, but – importantly – without restraining your future actions. When your web applications or software expands together with your business, your interface should lend itself to effective adjustments to meet new requirements.
Finally, it is a good idea to tailor your API to the characteristics of your audience, so that there is no mismatch between what it can achieve (and how) and what its users demand.