本文档介绍如何使用API客户端和平台内置开发人员工具访问和使用CaTC北向(意图)API。
它涵盖基本HTTP/REST概念,并提供自动化和测试的实际示例。
建议掌握下列主题的相关知识:
本文档中的信息基于下列硬件和软件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
Catalyst中心北向API(Intent API)允许用户与图形用户界面之外的控制器交互。这样可以实现定制工作流程的自动化、与第三方工具的集成,以及规模化的高效网络管理。
超文本传输协议(HTTP)是Web数据通信的基础。它遵循客户端 — 服务器模型,在该模型中,客户端发送请求,而服务器返回响应。
HTTP请求包括四个部分:
HTTP响应反映请求结构:
HTTP状态代码是服务器作为HTTP响应的一部分返回的标准化数字代码。它们表示客户端请求的一般结果,并有助于了解请求是否成功、是否需要执行其他操作或是否遇到错误。
这些代码按其第一个数字分为五个主要类别。
REST(具象状态传输)是设计网络应用的体系结构风格。RESTful API使用HTTP作为传输机制,并且通常使用JSON进行数据交换,因为它具有轻量性质。
当客户端与REST API交互时,服务器返回资源的当前状态的表示形式。此表示作为响应的一部分传输到客户端,并且可以用不同的格式表示。
REST不是协议。相反,它是一种分层式风格,定义了一系列构建分布式系统和API的原则和限制。在现代API中,JSON是最常用的格式之一,因为它轻量且易于处理。
典型的REST交互遵循基于客户端的模型(这已在文章中提及)。 客户端使用GET、POST、PUT、PATCH或DELETE等方法发送HTTP请求。服务器处理并返回包含请求的信息或操作结果的HTTP响应。
RESTful API通常使用HTTP作为通信机制,以对资源执行操作。在此模型中,客户端标识资源/终结点,然后使用HTTP方法指示要对该资源执行的操作。REST API可以使用几个主要元素进行描述。首先,URI用于标识客户端要访问的资源或端点。URI提供该资源在API中的位置或标识符。其次,客户端使用标准HTTP方法(如GET、POST、PUT、PATCH和DELETE)来定义请求操作。例如,GET可用于检索资源,POST用于创建资源,而DELETE则完全删除资源。最后,资源通过表示形式进行交换,表示形式由资源介质类型定义。这种表示方式是在客户端和服务器之间传输资源数据的形式,如JSON或XML。
CaTC通过集中自动化、配置、策略管理、监控和分析,帮助简化园区网络运营。网络管理员可以更高效地部署和管理设备、维护一致的策略、监控网络行为和提高整体运营可视性。这些功能可以通过图形用户界面(GUI)以及通过API和外部集成来访问。
CaTC平台还提供可用于构建自定义集成和网络操作自动化的API。通过将CaTC API与现有思科解决方案或第三方应用相结合,组织可以扩展平台功能并创建针对特定运营或业务需求的定制工作流程。
在介绍了基本概念之后,本文档重点介绍Cisco Catalyst Center中的北向API(也称为目的API)。这些API通过基于策略的业务意图抽象化来展示特定的Catalyst Center功能,使管理员和开发人员可以专注于期望的结果,而不是实现目标所需的单个配置步骤。
Catalyst Center Intent API是使用JSON数据格式与平台交互的RESTful API。它们可用于在整个网络中发现网络信息、检索操作数据,以及执行支持的控制和自动化任务。
在进行API调用之前,您必须进行身份验证才能接收令牌。
Catalyst Center开发人员工具包
在Bruno创建新请求
在Bruno创建新请求
身份验证API的基本身份验证
运行身份验证API服务器返回200 OK状态和包含令牌的JSON负载。
Alternative (Terminal): You can also generate the token by base64-encoding your `username:password` and sending a cURL request or using the **Try** button in the Catalyst Center GUI to copy the generated token.
获取用户名和密码的base64编码
使用编码的base64用户名和密码输入基本身份验证
从Catalyst Center GUI获取身份验证令牌。此时,您在Bruno响应或通过Catalyst Center Developer Toolkit完成的响应上拥有身份验证令牌。
现在在Bruno中将令牌添加为集合设置上的Header,这样便于集合内创建的任何其他请求使用该令牌,因此您无需手动将令牌输入为每个请求的标头。
要避免对每个请求进行重新身份验证,请将令牌设置为集合级别报头:
集合设置
在Bruno中输入API集合的全局标头。此时,您已生成身份验证令牌以执行任何其他Catalyst Center API请求。
此示例演示如何在网络层次结构中创建楼层(Global > TestArea > TestBuilding)。
网络层次结构
使用GET /dna/intent/api/v1/sites API查找TestBuilding的ID。
GET请求/dna/intent/api/v1/sites?nameHierarchy=Global/TestArea/TestBuilding
{
"name": "Floor 1",
"parentId": "your-building-id-here",
"floorNumber": 1,
"rfModel": "Cubic-Office",
"width": 100,
"length": 100,
"height": 10,
"unitsOfMeasure": "feet"
}
创建楼层的POST请求
通过POST请求验证Floor创建的GET API。
最后,要验证已成功创建楼层,可以运行之前的API并修改查询以匹配完整的层次路径,如上所示。
此示例说明如何获取网络设备上的特定接口的状态。
在Catalyst Center GUI中,转到Inventory,单击您的设备,然后在浏览器中查看URL。最后一个数据段是设备ID。
在Bruno中创建变量
GET请求应用查询
Catalyst Center北向API为网络管理员提供了强大的灵活性。通过从基于GUI的管理过渡到API驱动的工作流程,您可以自动执行重复性任务、确保配置一致性,并将网络智能集成到更广泛的IT生态系统中。
| 版本 | 发布日期 | 备注 |
|---|---|---|
1.0 |
14-Oct-2026
|
初始版本 |