API Documentation fluffs up your Bubbleby Applied Informatics
An application programming interface, commonly known as API is a set of routines, protocols, and tools for building software and applications. An API may be for a web based system, operating system, or database system, and it provides facilities to develop applications for that system using a given programming language. As an example, a programmer who develops apps for Windows Mobile may use a Windows API to interact with hardware, like the front camera of a Windows Mobile-based device.
Most of the time when you’re building solutions, you’re designing for end users who are not programmers, or who are generally not technically sophisticated. You’re giving them a graphical interface and if you’ve been doing your job right, you’ve gleaned a pretty good idea from them of what they need the interface to do.
But API development is different. You’re designing an interface for programmers, probably without even knowing who they are. And whoever they are, will have the technical sophistication to point out every little flaw in your software. Your users are likely to be as critical of your API as you would be of theirs, and will thoroughly enjoy critiquing it.
Two paramount rules of API development are Security and Ease of adoption. Both lead to a stable and usable API that can be reused again and again. A simple token-based authentication with secure token will ensure that the APIs are not hacked and used by someone else. For ease of adoption, keep the API simple and make sure people can actually use your API and that it works the first time, every time.
APIs often come in the form of a library that include specifications for routines, data structures, object classes, and variables. In other cases, notably SOAP and REST services, an API is simply a specification of remote calls exposed to the API consumers. An API specification can take many forms, including an International Standard, such as POSIX, vendor documentation, such as the Microsoft Windows API, or the libraries of a programming language, e.g. the Standard Template Library in C++ or the Java APIs.