API NITRO

Le protocole Citrix ADC NITRO vous permet de configurer et de surveiller l’appliance Citrix ADC par programme à l’aide d’interfaces REST (Representational State Transfer). Par conséquent, les applications NITRO peuvent être développées dans n’importe quel langage de programmation. En outre, pour les applications qui doivent être développées avec Java, .NET ou Python, les API NITRO sont exposées par le biais de bibliothèques pertinentes qui sont packagées en tant que kits de développement logiciel (SDK) séparés.

Important

  • Les API XML sont obsolètes à partir de NetScaler 10.5.

  • Sauf indication contraire, cette documentation NITRO s’applique aux versions 11.0 et 10.5 de NetScaler.

Pour utiliser NITRO, vous devez avoir une compréhension de base de l’appliance Citrix ADC et vous devez vous assurer que l’application cliente possède les éléments suivants :

  • Accès à une appliance NetScaler version 9.2 ou ultérieure.

  • Pour utiliser les interfaces REST, vous devez disposer d’un système permettant de générer des requêtes HTTP ou HTTPS (charge utile au format JSON) vers l’appliance Citrix ADC. Vous pouvez utiliser n’importe quel langage de programmation ou outil.

  • Pour les clients Java, vous devez disposer d’un système dans lequel Java Development Kit (JDK) 1.5 ou version ultérieure est disponible. Le JDK peut être téléchargé à partir de http://www.oracle.com/technetwork/java/javase/downloads/index.html.

  • Pour les clients .NET, vous devez disposer d’un système avec .NET Framework 3.5 ou version ultérieure installé. Le framework .NET peut être téléchargé à partir de http://www.microsoft.com/downloads/en/default.aspx.

  • Le SDK Python est disponible à partir de NetScaler 10.5. Pour les clients Python, vous devez disposer d’un système avec Python 2.7 ou version ultérieure et de la bibliothèque Requests (disponible dans<NITRO_SDK_HOME>/lib) installée. La bibliothèque NITRO doit être installée sur le chemin du client. Pour les instructions d’installation, lisez le fichier <NITRO_SDK_HOME>/README.txt.

Obtention du package NITRO

Le package NITRO est disponible sous forme de fichier tar sur la page Téléchargements de l’utilitaire de configuration de l’appliance Citrix ADC. Vous devez télécharger et annuler le fichier dans un dossier de votre système local. Ce dossier est appelé<NITRO_SDK_HOME> dans cette documentation.

Le dossier contient les bibliothèques NITRO dans le sous-dossier lib. Les bibliothèques doivent être ajoutées au chemin de classe de l’application cliente pour accéder à la fonctionnalité NITRO. Le<NITRO_SDK_HOME> dossier fournit également des exemples et de la documentation qui peuvent vous aider à comprendre le kit de développement logiciel (SDK) NITRO.

Remarque :

  • Le package REST contient uniquement de la documentation pour l’utilisation des interfaces REST.
  • Pour le SDK Python, la bibliothèque doit être installée sur le chemin du client. Pour les instructions d’installation, lisez le fichier <NITRO_SDK_HOME>/README.txt.

Fonctionnement de NITRO

L’infrastructure NITRO se compose d’une application cliente et du service Web NITRO s’exécutant sur une appliance Citrix ADC. La communication entre l’application cliente et le service Web NITRO est basée sur l’architecture REST utilisant HTTP ou HTTPS.

image localisée

Comme le montre la figure ci-dessus, une requête NITRO est exécutée comme suit :

  1. L’application cliente envoie un message de demande REST au service Web NITRO. Lors de l’utilisation des kits SDK, un appel d’API est traduit dans le message de requête REST approprié.
  2. Le service Web traite le message de demande REST.
  3. Le service Web NITRO renvoie le message de réponse REST correspondant à l’application cliente. Lors de l’utilisation des kits SDK, le message de réponse REST est traduit dans la réponse appropriée pour l’appel API.

Pour réduire le trafic sur le réseau Citrix ADC, vous récupérez l’état complet d’une ressource à partir du serveur, apportez des modifications à l’état de la ressource localement, puis transférez-le sur le serveur dans une transaction réseau. Par exemple, pour mettre à jour un serveur virtuel d’équilibrage de charge, vous devez récupérer l’objet, mettre à jour les propriétés, puis charger l’objet modifié dans une seule transaction.

Remarque : les opérations locales sur une ressource (modification de ses propriétés) n’affectent pas son état sur le serveur tant que l’état de l’objet n’est pas explicitement chargé.

Les API NITRO sont de nature synchrone. Cela signifie que l’application cliente attend une réponse du service Web NITRO avant d’exécuter une autre API NITRO.