Chapter 8. Data Formats and Models

If you’ve done any amount of exploration into the world of APIs, you’ve likely heard about data formats like JSON, XML, or YAML. You may have heard about concepts like data modeling, or model-driven APIs. Terms like data serialization and markup language may have popped into the foreground. You’d be right to wonder what all of this means and how it all applies to network automation.

It turns out that these concepts are at the heart of any reasonably complex modern software system, including those built and operated for the purpose of network automation. Even if you’re writing a simple script to change the hostname on a switch, at some point, your script will need to transmit some kind of information over the network that the switch will successfully receive and correctly interpret. How can you get your script and that switch to speak the same language?

Data formats like the aforementioned are those shared languages. They are broadly supported in all popular programming languages and are under the covers of nearly all the libraries and tools that you’ll use in your network automation journey. They are used by your network device’s built-in software for the purpose of being able to reliably and programmatically communicate with external entities, whether a full-blown fabric manager or a simple script on your laptop.

Understanding these formats, and how to work with the data they represent, is therefore crucial for you to be able to work effectively ...

Get Network Programmability and Automation, 2nd Edition 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.