An application programming interface (API) is a specification intended to be used as an interface by software components to communicate with each other. An API may include specifications for routines, data structures, object classes, and variables. Open Cloud APIs are currently a heavily sought after solution to interconnect cloud applications in a more fluid manner. It also affords collaborative services between cloud service and deployment models for interoperability and data portability.
The primary mechanism for building cloud computing solutions is the APIs provided by cloud providers. The Cloud Computing Use Case states that cloud APIs work at four different levels, and they fall into five basic categories.
Levels of APIs
There are four different levels of APIs. Each level requires the developer to focus on different tasks and data structures.
Level 1 – The Wire: At this level, the developer writes directly to the wire format of the request. If the service is REST-based, the developer creates the appropriate HTTP headers, creates the payload for the request, and opens an HTTP connection to the service. The REST service returns data with an accompanying HTTP response code. Because of the straightforward nature of many REST services, it is possible to be relatively efficient while writing code at this level.
If the service is SOAP-based, the developer creates the SOAP envelope, adds the appropriate SOAP headers, and fills the body of the SOAP envelope with the data payload. The SOAP service responds with a SOAP envelope that contains the results of the request. Working with SOAP services requires parsing the XML content of the envelopes; for that reason, most SOAP services are invoked with a higher-level API.
Level 2 – Language-Specific Toolkits: Developers at this level use a language- specific toolkit to work with SOAP or REST requests. Although developers are still focused on the format and structure of the data going across the wire, many of the details (handling response codes and calculating signatures, for example) are handled by the toolkit.
Level 3 – Service-Specific Toolkits: The developer uses a higher-level toolkit to work with a particular service. Working at this level, the developer is able to focus on business objects and business processes. A developer can be far more productive when focusing on the data and processes that matter to the organization instead of focusing on the wire protocol.