Citrix ADC

NITRO API

Citrix ADC NITRO 协议允许您使用代表性状态传输 (REST) 接口以编程方式配置和监视 Citrix ADC 设备。因此,可以用任何编程语言来开发 NITRO 应用程序。此外,对于必须以 Java 或 .NET 或 Python 开发的应用程序,NITRO API 将通过打包为独立软件开发工具包 (SDK) 的相关库提供。

重要

  • 自 NetScaler 10.5 起,XML API 已被弃用。

  • 除非另行指定,否则此 NITRO 文档适用于 NetScaler 版本 11.0 和 10.5。

要使用 NITRO,您必须基本了解 Citrix ADC 设备,并且必须确保客户端应用程序具有以下能力:

  • 访问 NetScaler 设备(版本 9.2 或更高版本)。

  • 要使用 REST 接口,您必须有一个系统来生成对 Citrix ADC 设备的 HTTP 或 HTTPS 请求(JSON 格式的有效负载)。可以使用任何编程语言或工具。

  • 对于 Java 客户端,您必须具有能够使用 Java 开发工具包 (JDK) 1.5 或更高版本的系统。可以从 http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载 JDK。

  • 对于 .NET 客户端,您必须具有安装了 .NET Framework 3.5 或更高版本的系统。可以从 http://www.microsoft.com/downloads/en/default.aspx 中下载 .NET Framework。

  • Python SDK 自 NetScaler 10.5 起可用。对于 Python 客户端,您必须具有安装了 Python 2.7 或更高版本以及请求库(在 <NITRO_SDK_HOME>/lib 中提供)的系统。NITRO 库必须安装在客户端路径上。有关安装说明,请阅读 <NITRO_SDK_HOME>/README.txt 文件。

获取 NITRO 软件包

NITRO 软件包在 Citrix ADC 设备的配置实用程序的 Downloads(下载)页面上作为 tar 文件提供。必须将文件下载并解压到本地系统中的文件夹。此文件夹在本文档中引用为 <NITRO_SDK_HOME>

该文件夹包含 lib 子文件夹中的 NITRO 库。必须将这些库添加到客户端应用程序类路径中才能访问 NITRO 功能。文件夹 <NITRO_SDK_HOME> 还提供了可以帮助您了解 NITRO SDK 的示例和文档。

注意:

  • REST 软件包仅包含如何使用 REST 接口的文档。
  • 对于 Python SDK,库必须安装在客户端路径上。有关安装说明,请阅读 <NITRO_SDK_HOME>/README.txt 文件。

NITRO 的工作原理

NITRO 基础结构由在 Citrix ADC 设备上运行的客户端应用程序和 NITRO Web 服务组成。客户端应用程序与 NITRO Web 服务之间的通信基于使用 HTTP 或 HTTPS 的 REST 体系结构。

本地化后的图片

如上图所示,NITRO 请求的执行方式如下:

  1. 客户端应用程序向 NITRO Web 服务发送 REST 请求消息。使用 SDK 时,API 调用会转换为相应的 REST 请求消息。
  2. Web 服务处理 REST 请求消息。
  3. NITRO Web 服务将相应的 REST 响应消息返回到客户端应用程序。使用 SDK 时,REST 响应消息将转换为 API 调用的相应响应。

为了最大限度地减少 Citrix ADC 网络上的流量,您可以从服务器检索资源的完整状态,在本地修改资源的状态,然后在一次网络事务中将其上载回服务器。例如,要更新负载平衡虚拟服务器,必须检索对象、更新属性,然后在单个事务中上载更改后的对象。

注意: 在显式上载对象的状态之前,对资源的本地操作(更改其属性)不会影响其在服务器上的状态。

NITRO API 本质上是同步的。这意味着,在执行另一个 NITRO API 之前,客户端应用程序会等待来自 NITRO Web 服务的响应。

NITRO API