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.