Skip to Content
《网络可编程性和自动化》第二版
book

《网络可编程性和自动化》第二版

by Matt Oswalt, Christian Adell, Scott S. Lowe, Jason Edelman
May 2025
Intermediate to advanced
828 pages
10h 54m
Chinese
O'Reilly Media, Inc.
Content preview from 《网络可编程性和自动化》第二版

第 8 章 数据格式和模型 数据格式和模型

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

如果您对 API 世界进行过一定程度的探索,那么您很可能听说过 JSON、XML 或 YAML 等数据格式。您可能听说过数据建模或模型驱动 API 等概念。数据序列化标记语言等术语也可能已跃然纸上。您可能会想知道这一切意味着什么,以及它们如何应用于 Network+ 自动化。

事实证明,这些概念是任何相当复杂的现代软件系统的核心,包括那些以网络自动化为目的而构建和运行的系统。即使你在编写一个简单的脚本来更改交换机上的主机名,在某些时候,你的脚本也需要通过网络传输某种信息,而交换机将成功接收并正确解释这些信息。如何让脚本和交换机说同一种语言呢?

上述数据格式就是共享语言。它们在所有流行的编程语言中都得到了广泛支持,几乎所有的库和工具都包含了它们,您在网络自动化之旅中会用到它们。网络设备的内置软件会使用它们,以便与外部实体(无论是完整的结构管理器还是笔记本电脑上的简单脚本)进行可靠的编程通信。

因此,了解这些格式以及如何处理它们所代表的数据,对于您作为网络自动化专业人员有效开展工作至关重要。本章将介绍用于表示、传输、存储和建模数据格式的各种技术和工具,并特别关注在网络自动化工作中最有可能遇到的数据格式。

结构化数据格式的优点和基本原理

程序员通常会使用多种工具来存储和处理数据。您可以使用简单的标量值(单值)、集合(数组、哈希图),甚至是在您使用的语言语法中构建的自定义类型。虽然具体情况往往不同,但所有语言都提供了类似的基元,为程序员提供了多种解决问题的方法。在单个程序的上下文中传递数据时,这通常就足够了。编译器清楚地知道要为给定类型分配多少内存,因此作为程序员,只需在需要时引用该类型,编译器就会处理好一切。

不过,有时需要一种更抽象、可移植的格式。例如,非程序员可能需要向运行中的程序输入数据或从中检索数据。多个程序之间可能需要以某种方式进行通信,而且这些程序甚至可能不是用同一种语言编写的;例如,传统的客户端-服务器应用程序使用你编写的脚本来自动执行网络设备上的任务,就经常会出现这种情况。

本章讨论的数据格式就是为了实现这类用例而设计的。它们是通用软件系统间通信的既定标准,因此,您选择使用的任何语言或工具都能很好地支持它们。它们能让你描述数据,否则这些数据只能在内存中表示为一系列字节。

备注

没有数据格式的标准化,我们的 Network+ 甚至无法运行!BGP、OSPF 和 TCP/IP 等协议的标准化是为了让网络元素拥有一种可预测的共享语言,以便在全球分布的系统--互联网--中进行有效通信!

本章讨论的格式有三个关键特征,使其极为有用和可取,尤其是在网络自动化的背景下:

结构化

这些数据格式基于一套约定俗成的规则,旨在让机器更容易理解。计算机比人类更直观,无法凭直觉理解没有严格、可预测结构的数据。例如,您可能会在路由器或交换机上的show 命令输出中看到非结构化数据,这些数据的格式可能很适合人类使用,但却不适合计算机解析和理解。

支持

由于这些格式已经标准化并被广泛采用,您几乎不需要编写自己的代码就能直接理解它们。您可以重复使用现有的(通常是非常成熟的)软件和工具。许多编程语言(如 Python 和 Go)都有内置机制,可以轻松地在文件系统或网络上将数据导入或导出为这些格式。

便携式

虽然有些语言有自己的中间表示法(如 Python 中的pickle或 Go 中的gobs),但我们在此讨论的格式是与语言无关的,这意味着它们适用于各种软件生态系统。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Python算法交易实战

Python算法交易实战

Posts & Telecom Press, Sebastien Donadio
软件工程基础

软件工程基础

Nathaniel Schutta, Dan Vega

Publisher Resources

ISBN: 9798341656994