Tag Archives: devops

What Really is an API?

api

Sure, sure, we all know that API stands for Application Programming Interface, but what does that mean really, and why is EVERYONE talking about APIs in IT today? This post seeks to provide this information for you!

Let’s tackle the easy part first. APIs are so talked about these days because there has been a real push to make network devices and systems programmable. In order to accomplish this, we need easy and simple to use APIs to make it happen.

If we look at AWS Cloud as an example, Amazon is going to great lengths to make a wide variety of APIs available to engineers that are working with their cloud. This fosters automation and orchestration in working with their systems and makes sure that these staff members are not stuck learning new languages.

Now let’s focus on what an API is. Really!

The job of the API is to create a set of routines, protocols, and tools for constructing software in such a manner that it is easy to communicate with, and so that it can easily interact with other software components. Back to the AWS example, Amazon provides an S3 REST API for use with their famous storage service. This makes it easy for you to interact with and manage your S3 buckets using code. It makes your environment easily programmable.

APIs typically have four common components:

  • Methods – describe the mechanisms that make the API function; methods might dictate how resources communicate and how they are encapsulated
  • Actions – these are verbs that describe the intent of the API call; for example, a REST API might use a GET to retrieve information
  • Objects – the resource a user is trying to access; a great example of an object would be a Uniform Resource Identifier that points to the object itself
  • Formats – this is how data is represented; for example, it might be XML or JSON

APIs make software more accessible, stable, modular and help with abstraction. Abstraction means that we can deal with high-level logic against the application, and we are shielded from the complexities of how the software actually gets the job done.