Chapter 7. Working with Network APIs

From Python and data formats to configuration templating with Jinja, we’ve explored key foundational technologies and skills that will make you a better network engineer. In this chapter, we’re going to put these skills to practical use and start to consume and communicate to different types of network device APIs.

In order to best help you understand how to start automating networks, this chapter is organized into three sections:

Understanding Network APIs

We examine the architecture and foundation of different APIs, including RESTful HTTP-based APIs, non-RESTful HTTP-based APIs, and NETCONF.

Exploring Network APIs

We introduce tools commonly used for testing and learning how to use each API type.

Automating Using Network APIs

Finally, we look at Python libraries that allow you to start automating your networks. We’ll look at the Python requests library for consuming HTTP-based APIs, ncclient for interacting with NETCONF devices, and netmiko for automating devices using SSH.

As you read this chapter, please keep in mind one thing—this chapter is not a comprehensive guide on any particular API, and it should not serve as API documentation. We will provide examples using different vendor implementations of a given API, as it’s very common to be working in a multi-vendor environment. It’s also important to see the common patterns and unique contrasts between different implementations of the same API type.

Understanding Network APIs

Get Network Programmability and Automation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.