Network Automation & REST-based APIS


Applications use application programming interfaces (APIs) to communicate. A program can learn the variables and data structures used by another program by making logical choices based on those values, changing the values ​​of those variables, creating new variables, and removing variables to do so.

API allows programs running on different computers to work, transferring data to achieve a goal. In the world of API software, some applications create an API, while many other applications use (consume) the API. One of my projects was to create a news API to access news databases for the latest and historical news data, which is useful for many ML and AI-based applications.

Software developers add APIs to their software so that other application software can use the functionality of the first application. When writing an application, the developer will write code. But the developer can do a lot of work looking for APIs that can provide the data and functions while minimizing the amount of new code to write.

Thus, much of modern software development centers on understanding and learning new APIs, as well as available libraries (pre-built software that can be used to perform tasks rather than writing the equal from zero). There are several types of APIs, each with a different set of conventions to meet a different set of needs.

The CCNA program mentions a type of status transfer of the API representation — from its popularity as a type of bee in networking automation applications.

1. The REST client on the left makes a REST API call, which sends a message to the REST server.

2. The REST server on the right has an API code that considers the request and decides how to respond to it.

3. The REST server returns the response message with the corresponding data variables in the response message.


The REST API is used in software-defined networks

A controller, or SDN controller, centralizes control of network devices. It mainly has North Bond interfaces and South Bond interfaces. JAVA / Python REST API applications run both client and server. Using the NBI, the client and the server communicate through BRUTE HTTP operations.

In the figure above, ideas with a REST API. The application runs on a host at the top of the figure. In this case, the host sends an HTTP GET request to a particular URI.

HTTP GET is like any other HTTP GET, even like those used to retrieve web pages. However, the URI is not for a web page but rather identifies an object on the controller, usually a data structure that the application must learn and then process.

For example, the URI can identify an object which is the list of physical interfaces on a specific device along with the state of each. Additionally, the controller sends an HTTP GET response message with the object. Most REST APIs will request and receive structured data.

That is, instead of receiving data, it is a web page as it would receive a web browser; the response contains the names of the variables and their values, in a format that can be easily used by a program.

Common data formats used for network programmability are JavaScript Object Notation (JSON) and Extensible Markup Language (XML). Likewise, Crude’s other operations work this way.

Any type of network can use network automation. Hardware and software solutions enable data centers, service providers, and enterprises to implement network automation to improve efficiency, reduce human errors and reduce operational expenses.