什么是API?
API(application programming interface,应用程序编程接口)可使不同的应用程序通过一套机制和协议相互通信。同样,网络 API 可实现网络与应用程序、网络浏览器和数据库之间的通信。
使用表征状态传输(REST)架构的 API 通常被称为 RESTful API。这些 API 通常用于网络。RESTful API 使用 HTTP 方法收集和操作数据,而 HTTP 则使用 RESTful API 与数据交互。
OSI 模型等框架为不同供应商的应用程序和设备在网络中相互通信的方式带来了标准化。不同供应商的应用程序接口可以进行交互,因为它们遵循不同方法和框架。
应用程序接口和数据库还可以使用创建、读取、更新和删除(CRUD)函数来存储和修改数据。CRUD 函数与 HTTP 函数有相似之处,如图所示。
增删改查 | HTTP功能 | 动作 | 用例 |
---|---|---|---|
create | post | 远程配置网络 | 添加虚拟 LAN (VLAN) |
read | get | 通过遥测列出网络设备 | 远程列出网络中的设备 |
update | put/patch | 修改网络配置 | 更改 VLAN 的名称 |
delete | delete | 删除未使用的 VLAN | 删除 VLAN |
网络 API 用例
几十年来,网络的事实标准一直是命令行界面 (CLI)。随着智能设备和大数据的普及,全球范围内的网络变得越来越大,管理起来也越来越复杂。但是,命令行形式并不是为支持这种大规模部署场景而设计的,它往往会导致繁琐的任务和人为错误。
与此相对的,网络 API则可以帮助网络工程师更轻松地管理网络,减少人工运维中的错误,通过引入自动化和脚本等概念还可以支持可编程网络。
网络 API 的常见用例如下:
用例 | 场景 | 价值 |
---|---|---|
批量部署 | 需要为 1,000 个网络设备部署软件更新。使用单个 API 请求即可一次性完成所有操作。 | 一台一台地配置或更新设备非常繁琐,API 可以提供帮助。 |
网络遥测 | 需要远程查看活动设备。 | 使用 API 提供了一种查看设备的简单方法,并且与 CLI 相比,您可以使用高级功能来过滤结果。 |
配置 | 需要自动执行手动任务,例如配置端口或负载平衡策略。 | 避免复杂配置的繁琐 CLI 任务。 |
管理员在使用设备、应用程序和平台时往往没有感知,但 API的存在对于这些交互是必不可少的。以下是一些业内常见的API类型:
API | 定义 | 使用案例 |
---|---|---|
RESTCONF | 基于 HTTP 的协议,提供编程接口来访问 Yang 中定义的数据 | 使网络管理员能够访问不同的网络设备 |
OpenFlow | 用于在网络设备中实施软件定义网络的多供应商标准 | 帮助完成负载平衡、路由、拓扑发现和其他任务 |
NETCONF & YANG API | 用于管理网络设备的管理网络协议 | 修改配置、删除、获取网络设备状态 |
管理员了解 API 的最佳方式是评估如何改进管理网络的方式,并在应对各类真实挑战的过程中不断思考、创新。管理员可以使用不同的工具与网络 API 进行交互,例如以下工具:
- cURL:一种命令行工具,开发人员使用它将数据传输到服务器或从服务器传输数据。
- Postman.:用于构建和使用 API 的 API 平台。
- Visual Studio Code(VS 代码):世界上最先进的代码编辑器之一,网络工程师可以使用 VS Code 工具编写代码,自动执行日常任务,或构建高级自定义脚本,与网络 API 交互。
网络已经走向了可编程时代,网络 API 已成为新的 CLI。编程能力将会成为未来网络工程师的一项有用技能,迎接变革,我们将一起在不断变化的技术行业中茁壮成长。
关注vx公号“星融元Asterfusion”,获取更多技术分享和最新产品动态。