Network Configuration Manager REST APIs与第三方应用程序的集成

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列表

  • 添加设备:发现设备并将其添加到Network Configuration Manager资源清单中。
  • 删除设备:从Network Configuration Manager资源清单中删除设备。
  • 获取设备详细信息:获取任何设备的硬件和软件属性。
  • 配置备份:触发Network Configuration Manager中任何设备的配置备份。
  • 获取备份状态:获取Network Configuration Manager中任何设备备份操作的最新状态。
  • 获取最新配置:获取任何设备的最新启动和运行的配置。
  • 获取合规状态:确定特定设备的配置是否符合定义的策略。
  • 获取自定义模板列表:获取Network Configuration Manager中可用的自定义模板列表。
  • 执行自定义模板:可以触发在任何设备上执行自定义模板。
  • 执行显示命令:可以触发在任何设备上执行显示命令。
  • 添加设备:添加的设备为特定的设备类型。
  • 获取所有设备类型:获取所有支持的设备类型。
  • 更新凭证:更新相应设备的凭证。

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。
PROTOCOLTELNET - 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。
PROTOCOLSSH - 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。
PROTOCOLSNMP - TFTP
SNMP_VERSION指定SNMP版本
 SNMP_PORT要使用的SNMP端口
SNMP_WRITECOMMUNITYSNMP读取社区
 SNMP_READCOMMUNITYSNMP写社区

输出: JSONObject{"response":"<IPAddress:response>}

错误代码

3301Network Configuration Manager服务器关闭
3302APIKey认证失败
3303内部异常
3304参考设备不可用
3305缺少动作参数
3306缺少命令参数
3307缺少API_KEY参数
3308缺少IP_ADDRESS参数
3309缺少模板变量
3310引用的模板不可用

 

3311 缺少模板名称
3312缺少SNMP版本
3313缺少SNMP端口
3314缺少SNMP读取社区
3315缺少SNMP写社区
3316缺少IP主机范围
3322参考操作不可用
3319配置不可用
3320启动配置不可用
3321运行配置不可用

 

3350 正在备份
3351备份失败
3352备份成功
3353备份中断
3354被引用设备正忙

 

3355 非托管设备
3356  没有为设备提供凭证

 

3357     凭证更新失败
3358凭证更新成功