Network Configuration Manager提供REST APIs,用于将任何第三方应用程序或软件与产品集成。 使用这些APIs,您可以从Network Configuration Manager添加/获取数据。 目前,已经提供了API来添加设备、删除设备、获取设备详细信息、触发配置备份、获取合规状态和许多其他活动。
REST APIs如何工作?
这些API使用一个API密钥,该密钥对于每个Network Configuration Manager管理员帐户都是唯一的,并且必须在每个API请求中作为参数传递。首先需要生成一个API密钥。每个调用还有一个名为“ACTION”的参数,该参数表示请求的类型,而IPADDRESS则表示要执行该动作的设备。
生成API密钥
API密钥可以从Network Configuration Manager Web界面生成。导航到管理 ---> REST API,之后点击生成密钥。
支持的操作 - API列表
API使用指南
发现并添加设备
此API用于在Network Configuration Manager中发现和添加设备。您可以指定要发现设备的IP地址或主机名,也可以指定要发现的IP范围和范围内的所有设备。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: IPADDRESS或者HOSTNAME活着IPRANGE(STARTIP,ENDIP),API_KEY,
ACTION="DISCOVER_DEVICE", SNMP_VERSION,SNMP_PORT,SNMP_READ_COMMUNITY,SNMP_WRITE_COMMUNITY
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| IPADDRESS or HOSTNAME or IPRANGE* | 要发现和添加设备的IP地址或主机名或IP范围。 |
| ACTION* | 这表示请求的类型。在这种情况下,该值为DISCOVER_DEVICE。 |
| SNMP_VERSION* | 可以发现网络中可用的启用了snmp的设备,并将其添加到Network Configuration Manager资源清单中。指定SNMP版本。 |
| SNMP_PORT* | 要使用的SNMP端口。 |
| SNMP_READ_COMMUNITY* | SNMP读取社区。 |
| SNMP_WRITE_COMMUNITY* | SNMP写社区。 |
输出:一个JSONObject的响应。 {"response","{[ipaddress:"response",ipaddress:"response"]}"}
删除设备
此API用于删除Network Configuration Manager中的任何设备。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: IPADDRESS ,API_KEY, ACTION="DELETE_DEVICE"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| IPADDRESS or HOSTNAME* | 在Network Configuration Manager中要删除设备的IP地址或主机名。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为DELETE_DEVICE。 |
输出: JSONObject {"response": {ipaddress:result}}
获取设备详细信息
此API用于从Network Configuration Manager获取任何设备的硬件和软件属性。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: IPADDRESS ,API_KEY, ACTION="GET_DEVICE"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| IPADDRESS* | 要从Network Configuration Manager获取其硬件和软件属性的设备IP地址。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为GET_DEVICE。 |
输出: JSONObject {"response": {ipaddress:{key:value,key:value}}}
配置备份
此API用于触发Network Configuration Manager中任何设备的配置备份。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: IPADDRESS ,API_KEY, ACTION="BACKUP_DEVICE"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| IPADDRESS* | 必须在Network Configuration Manager中备份其配置的设备的IP地址。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为BACKUP_DEVICE。 |
输出: JSONObject {"response": {ipaddress:result}}
获取备份状态
此API用于检查设备的备份操作状态(无论备份已完成、正在进行中还是失败)
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: IPADDRESS ,API_KEY, ACTION="GET_DEVICE_BACKUP_STATUS"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| IPADDRESS* | 需要检查备份状态的设备IP地址。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为GET_DEVICE_BACKUP_STATUS。 |
输出: JSONObject {"response": {ipaddress:result}}
获取最新的设备配置
此API用于获取任何设备的最新启动和运行配置。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数:IPADDRESS ,API_KEY, ACTION="GET_CONFIGURATION"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| IPADDRESS* | 需要备份最新配置的设备IP地址。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为GET_CONFIGURATION。 |
此API在输出中返回以下详细信息。如果需要,您可以处理那里的参数从而进行任何进一步的操作。
输出: JSONObject {"response": {ipaddress: {STARTUP:"start up configuration", STARTUP_ANNOTATION:"", STARTUP_APPROVED_BY:"", STARTUP_BACKED_TIME:"", STARTUP_BACKED_UP_BY:"",
STARTUP_CHANGED_BY:"", STARTUP_CHANGE_TYPE:"", STARTUP_COMMENTS:"", STARTUP_VERSION_NUMBER:"",
RUNNING:"running configuration", RUNNING_ANNOTATION:"", RUNNING_APPROVED_BY:"",
RUNNING_BACKED_TIME:"", RUNNING_BACKED_UP_BY:"",
RUNNING_CHANGED_BY:"", RUNNING_CHANGE_TYPE:"", RUNNING_COMMENTS:"", RUNNING_VERSION_NUMBER:"",} }}
获取合规状态
此API用于检查设备的合规性状态。这告诉您设备配置是否符合策略。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: IPADDRESS ,API_KEY, ACTION="GET_COMPLIANCE_STATUS"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| IPADDRESS* | 需要检查其合规性状态的设备IP地址。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为GET_COMPLIANCE_STATUS。 |
输出: JSONObject {"response": {ipaddress:result}}
输出值将是Compliant或者Violation。
获取自定义模板名称列表
此API用于获取Network Configuration Manager中使用的所有自定义模板的列表。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: APIKEY, ACTION="GET_TEMPLATE_NAMES"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为GET_TEMPLATE_NAMES。 |
输出: JSONObject {"response": {template name 1:[template variables if any],template name 2:[template variables if any]}}
执行自定义模板
此API用于触发在任何设备上执行自定义模板。这有助于自动化配置任务。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: API_KEY,TEMPLATE_NAME,TEMPLATE_VARIABLES(optional), ACTION="EXECUTE_TEMPLATE"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| TEMPLATE_NAME* | 要执行自定义模板的名称。 |
| TEMPLATE_VARIABLES | 自定义模板中的变量值。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为EXECUTE_TEMPLATE。 |
输出: JSONObject {"response": {"DEVICE_RESPONSE": Device response string ,"OPERATION_STATUS":Response } }
执行显示命令
此API用于触发在设备上执行显示命令。
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: API_KEY,COMMAND, ACTION="EXECUTE_COMMAND"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| COMMAND* | 要执行的显示命令。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为EXECUTE_COMMAND。 |
输出: JSONObject {"response": {"EXECUTION_RESULT": Device response string } }
添加设备
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数: IPADDRESS or HOSTNAME,API_KEY,DEVICE_TYPE,ACTION="ADD_DEVICE"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| DEVICE_TYPE* | 任何受支持的设备类型。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为ADD_DEVICE。 |
输出: JSONObject{"response":{"<HostName>":"<HostName> Added Successfully"}}
获取所有设备类型
请求URL: <Protocol- http or https >://<Network Configuration Manager-Server-Name>:port/api
输入参数:API_KEY,ACTION="GET_ALL_DEVICE_TYPES"
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为GET_ALL_DEVICE_TYPES。 |
输出: JSONObject{"response":"<All DeviceTypes">}
更新凭证
适用于所有类型的协议。
输入参数:IPADDRESS,API_KEY,ACTION="UPDATE_CREDENTIALS"
TELNET - TFTP / TELNET
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为UPDATE_CREDENTIALS。 |
| PROTOCOL | TELNET - TFTP / TELNET |
| TELNET_LOGINNAME | 指定设备的<登录名称>。 |
| TELNET_PASSWORD | 指定设备的<密码>。 |
| TELNET_PROMPT | 指定设备的<提示符>。 |
| TELNET_ENABLEUSERNAME | 指定设备的<启用用户名>。 |
| TELNET_ENABLEPASSWORD | 指定设备的<启用密码>。 |
| TELNET_ENABLEPROMPT | 指定设备的<启用提示符>。 |
SSH - TFTP / SSH
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为UPDATE_CREDENTIALS。 |
| PROTOCOL | SSH - TFTP / SSH |
| SSH_LOGINNAME | 指定设备的<登录名称>。 |
| SSH_PASSWORD | 指定设备的<密码>。 |
| SSH_PROMPT | 指定设备的<提示符>。 |
| SSH_ENABLEUSERNAME | 指定设备的<启用用户名>。 |
| SSH_ENABLEPASSWORD | 指定设备的<启用密码>。 |
| SSH_ENABLEPROMPT | 指定设备的<启用提示符>。 |
SNMP - TFTP
| 参数 | 描述 |
| API_KEY* | 用于访问Network Configuration Manager服务器的API密钥。 |
| ACTION* | 这表示请求的类型。在这种情况下,值为UPDATE_CREDENTIALS。 |
| PROTOCOL | SNMP - TFTP |
| SNMP_VERSION | 指定SNMP版本 |
| SNMP_PORT | 要使用的SNMP端口 |
| SNMP_WRITECOMMUNITY | SNMP读取社区 |
| SNMP_READCOMMUNITY | SNMP写社区 |
输出: JSONObject{"response":"<IPAddress:response>}
错误代码
|
| 3311 | 缺少模板名称 |
| 3312 | 缺少SNMP版本 |
| 3313 | 缺少SNMP端口 |
| 3314 | 缺少SNMP读取社区 |
| 3315 | 缺少SNMP写社区 |
| 3316 | 缺少IP主机范围 |
| 3322 | 参考操作不可用 |
| 3319 | 配置不可用 |
| 3320 | 启动配置不可用 |
| 3321 | 运行配置不可用 |
| 3350 | 正在备份 |
| 3351 | 备份失败 |
| 3352 | 备份成功 |
| 3353 | 备份中断 |
| 3354 | 被引用设备正忙 |
| 3355 | 非托管设备 |
| 3356 | 没有为设备提供凭证 |
| 3357 | 凭证更新失败 |
| 3358 | 凭证更新成功 |