Test d'une API avec l'environnement de test local Test Environment

Utilisez le Locale Test Environment (LTE) pour tester les API sur votre machine locale, sans avoir besoin de vous connecter à unAPI Connect serveur de gestion. L' environnement de test Test Environment est un gestionnaire d'API simple qui s'exécute sur votre machine locale. Il vous permet de tester rapidement les API en local.

API Connect fournit les méthodes suivantes pour tester une API sur votre machine locale:
  • Appelez l'API à partir de l'application d'interface utilisateur API Designer qui s'exécute en mode en ligne, comme décrit dans Test d'une API.
  • Appelez l'API dans l' environnement de test Test Environment à l'aide d'une commande cURL , comme décrit dans les sections suivantes.

Prérequis

  • API Connect toolkit de développement, y compris l'interface utilisateur Concepteur d'API , installé. Pour obtenir des instructions d'installation et d'exécution, voir Configuration du kit d'outils API Connect.
  • L' environnement de test Test Environment et le concepteur d'API doivent provenir du même groupe de correctifs API Connect pour qu'ils puissent fonctionner ensemble.
  • Docker doit être installé.
    Remarque: l'environnement de test local Test Environment n'est pas pris en charge avec Docker version 18.09.x.
  • Un minimum de 4 Go de mémoire RAM est disponible pour Docker si un seul type de passerelle est utilisé, ou de 6 Go si DataPower® API Gateway et DataPower Gateway (v5 compatible) sont utilisés.
    Remarque: Lorsque vous augmentez le nombre d'API publiées sur vos passerelles, vous devez allouer davantage de mémoire à Docker. Vous devrez également démarrer l' environnement de test Test Environment avec une base de données plus grande ; voir apic-lte start.
  • Si vous utilisez Windows, vérifiez que votre unité C: (ou l'unité sur laquelle se trouve votre répertoire HOME , si elle est différente) est activée en tant qu'unité partagée de sorte que les fichiers Local Test Environment soient accessibles aux conteneurs Docker .

Installation de l' environnement de test Test Environment

Il existe deux options pour l'installation de l' environnement de test Test Environment:
  • Chaque utilisateur télécharge les images Environnement de test Test Environment sur sa machine locale et installe l' Environnement de test Test Environment à partir de là.
  • Un utilisateur télécharge les images de l' environnement de test Test Environment et les télécharge dans un registre Docker privé, à partir duquel n'importe quel utilisateur peut installer l'environnement de test local Test Environment.
Pour installer l' environnement de test Test Environment à partir de votre machine locale, procédez comme suit:
  1. Ouvrez un navigateur et visitez le site API Connect page d'annonce, recherchez la version de votre produit et localisez le tableau "Téléchargements" sur la page d'annonce du produit. Dans le tableau, cliquez sur le lien de téléchargement de chacun des fichiers suivants :
    • apic-lte-images-version.tar.gz, qui contient toutes les images Docker requises.

      Exemple : apic-lte-images-10.0.2.tar.gz

    • apic-lte-platform-version, qui sont des fichiers binaires pour les plateformes macOS, Linux®, et Windows.
      Exemples :
      • macOS: apic-lte-osx-10.0.2
      • Linux: apic-lte-linux-10.0.2
      • Windows :apic-lte-win-10.0.2
  2. Sur la plateforme macOS ou Linux, utilisez la commande chmod pour rendre le fichier binaire exécutable ; par exemple :
    chmod +x linux-apic-lte
  3. Chargez les images Docker dans votre référentiel d'images Docker local en entrant la commande suivante :
    docker load < apic-lte-images.tar.gz
Remarque: dans toutes les commandes Local Test Environment utilisées dans le reste de cette page, remplacez platform par macOS, linuxou windows, en fonction de votre plateforme, comme suit:
  • macOS : remplacer platform-apic-lte par osx-apic-lte
  • Linux: remplacez platform-apic-lte par linux-apic-lte
  • Windows: remplacez platform-apic-lte par win-apic-lte
Pour télécharger les images Local Test Environment dans un registre Docker privé, procédez comme suit:
  1. Téléchargez le fichier IBM_API_CONNECT_LOCAL_TEST_ENVIRO.zip comme décrit à l'étape 1.
  2. Distribuez le fichier binaire approprié à tous les utilisateurs, en fonction de la plateforme.
  3. Téléchargez l' environnement de test Test Environment dans votre registre Docker privé ; entrez la commande suivante:
    platform-apic-lte registry-upload apic-lte-images.tar.gz registry_host
    hôte_registre est le nom d'hôte ou l'adresse IP de votre registre Docker privé. A présent, n'importe quel utilisateur peut installer et exécuter l' environnement de test Test Environment comme suit:
    1. Si le registre Docker privé requiert une authentification, connectez-vous en entrant la commande suivante :
      docker login registry_host
    2. Chargez les images Docker dans votre référentiel d'images Docker local en entrant la commande suivante :
      platform-apic-lte init registry_host

Démarrage de l' environnement de test Test Environment

  1. Démarrez les images Docker en exécutant la commande suivante:
    platform-apic-lte start
    Remarque :
    • Par défaut, la commande platform-apic-lte start démarre uniquement un DataPower API Gateway. Pour démarrer également un DataPower Gateway (v5 compatible), entrez la commande suivante:
      platform-apic-lte start --datapower-gateway-enabled --datapower-api-gateway-enabled
    • Le démarrage de l' environnement de test Test Environment peut échouer avec un message d'erreur qui inclut les chaînes Error: certificate is not yet valid et CERT_NOT_YET_VALID. La cause la plus probable est que le paramètre de date et d'heure est incorrect sur la machine qui exécute l' environnement de test Test Environment. Vérifiez que la date et l'heure sont correctes, avant de réessayer la commande de démarrage. Si vous utilisez Docker pour Windows, l'horloge des conteneurs Docker peut se désynchroniser de l'horloge système, en particulier lorsqu'une machine a été mise en mode veille. Dans ce cas, le redémarrage de Docker doit corriger la différence d'horloge. Pour plus d'informations, voir https://github.com/docker/for-win/issues/4526.
    • Par défaut, l'environnement de test local (LTE, Local Test Environment) démarre avec une base de données de back end vide qui ne contient ni les API ni les produits qui devraient avoir été publiés lors d'une exécution précédente du LTE. Pour démarrer le LTE avec la base de données de back end utilisée lors de la précédente exécution, utilisez l'indicateur --keep-config, par exemple, platform-apic-lte start --keep-config. Lorsque vous utilisez --keep-config tout autre indicateur spécifié pour le démarrage est ignoré. Ce sont les indicateurs utilisés lors du démarrage précédent qui sont utilisés, notamment les mêmes passerelles qui sont activées.
  2. Vérifiez que l' Test Environment local est installé et s'exécute correctement en exécutant les commandes suivantes:
    1. Vérifiez le statut des composants LTE:
      platform-apic-lte status
      Le résultat de cette commande affiche le statut de tous les composants et fournit des détails d'authentification et de noeud final. Il doit être similaire à ce qui suit :
      Container                       Status
      ---------                       ------
      apic-lte-apim                   Up 3 minutes
      apic-lte-datapower-gateway      Not Running
      apic-lte-datapower-api-gateway  Up 2 minutes
      apic-lte-db                     Up 3 minutes
      apic-lte-juhu                   Up 3 minutes
      apic-lte-lur                    Up 3 minutes
      
      - Platform API url: https://localhost:2000
      - Admin user: username=admin, password=7iron-hide
      - 'localtest' org owner: username=shavon, password=7iron-hide
      - 'localtest' org sandbox test app credentials client id: 80963e74076afe50d346d76401c3c08a
      - Datapower API Gateway API base url: https://localhost:9444/localtest/sandbox/
    2. Connectez-vous au serveur de gestion:
      apic login --server localhost:2000 --username shavon --password 7iron-hide --realm provider/default-idp-2
      
      Cette commande confirme que vous pouvez vous connecter au serveur de gestion. La réponse doit être la suivante :
      Logged into localhost:2000 successfully
      Problème connu: Si vous recevez une erreur lors de la connexion, arrêtez puis redémarrez LTE, puis connectez-vous à nouveau.
Remarque : pour configurer les informations d'identification de la boîte à outils pour l'Test Environment local, utilisez la commande suivante :
apic client-creds:set ~/.apic-lte/credentials.json

Préparation d'une API pour le test dans l'environnement de test local Test Environment

Pour préparer une API à des tests dans l' environnement de test Test Environment, vous devez la publier dans le catalogue pour bac à sable dans l' environnement de test Test Environment. Si vous souhaitez tester une API que vous avez déjà publiée, passez à la section Test d'une API dans l'environnement de test Test Environment. Sinon, procédez comme suit:
  1. Lancez l'interface utilisateur API Designer à l'aide de la commande suivante :
    APIC_DESIGNER_CREDENTIALS=~/.apic-lte/credentials.json <path-to-designer>
  2. Ouvrez le répertoire local requis. Il s'agit du répertoire dans lequel les fichiers de l'API et de la définition de produit vont être stockés.
  3. Connectez-vous à l' environnement de test Test Environment. Si vous ne vous êtes pas déjà connecté à l' environnement de test Test Environment, cliquez sur Ajouter un autre cloud, puis procédez comme suit:
    1. Dans le champ HOST URL, entrez https://localhost:2000, puis cliquez sur Next.
    2. Dans la zone Nom d'utilisateur , entrez shavon, dans la zone Mot de passe , entrez 7iron-hide, puis cliquez sur Se connecter.
      Remarque :
      • Si vous ne parvenez pas à vous connecter à l' Test Environment local à l'aide de https://localhost:2000, saisissez https://127.0.0.1:2000 dans le champ HOST URL
      • Si vous recevez une erreur lors de la connexion, arrêtez puis redémarrez le LTE, puis connectez-vous à nouveau à l'aide d'API Designer.

    Si vous vous êtes déjà connecté à l' environnement de test Test Environment, cliquez sur la vignette existante pour vous connecter immédiatement.

    La page d'accueil d' API Designer s'ouvre.

  4. Cliquez sur Développement d'API et de produits, puis sur l'API à tester. Pour plus d'informations sur la configuration d'une définition d'API, reportez-vous à la section Développement d'API et d'applications.
  5. Vous devez publier votre API avant de tester. Pour savoir comment publier une API, voir Publication d'un projet de produit
    Remarque: chaque fois que vous apportez des modifications à une API, vous devez la republier avant de procéder à un nouveau test.

Test d'une API dans l' environnement de test Test Environment.

Pour tester une API dans l' Test Environment local, envoyez un appel API REST à l' URL suivante :
https://localhost:9444/localtest/sandbox/basepath/operation_path?client_id=lte_client_id
où :
  • chemin_de_base est le chemin de base qui est configuré dans la définition d'API.
  • chemin_opération est le chemin de l'opération que vous souhaitez appeler, tel qu'il est configuré dans la définition d'API.
  • lte_client_id est l'ID client de l'application de test dans l'environnement de test local, tel que renvoyé par la commande platform-apic-lte status à l'étape 2.
L'exemple suivant montre comment tester l'API créée dans le tutoriel Création d'une définition d'API REST de proxyà l'aide de l'utilitaire curl ; l'API renvoie les détails des succursales bancaires:
curl -k https://localhost:9444/localtest/sandbox/branches/details?client_id=80963e74076afe50d346d76401c3c08a
[{"id":"0b3a8cf0-7e78-11e5-8059-a1020f32cce5","type":"atm","address":{"street1":"600 Anton Blvd.","street2":"Floor 5","city":"Costa Mesa","state":"CA","zip_code":"92626"}},
{"id":"9d72ece0-7e7b-11e5-9038-55f9f9c08c06","type":"atm","address":{"street1":"4660 La Jolla Village Drive","street2":"Suite 300","city":"San Diego","state":"CA","zip_code":"92122"}},
{"id":"ae648760-7e77-11e5-8059-a1020f32cce5","type":"atm","address":{"street1":"New Orchard Road","city":"Armonk","state":"NY","zip_code":"10504"}},
{"id":"c23397f0-7e76-11e5-8059-a1020f32cce5","type":"branch","phone":"512-286-5000","address":{"street1":"11400 Burnet Rd.","city":"Austin","state":"TX","zip_code":"78758-3415"}},
{"id":"ca841550-7e77-11e5-8059-a1020f32cce5","type":"atm","address":{"street1":"334 Route 9W","city":"Palisades","state":"NY","zip_code":"10964"}},
{"id":"dc132eb0-7e7b-11e5-9038-55f9f9c08c06","type":"branch","phone":"978-899-3444","address":{"street1":"550 King St.","city":"Littleton","state":"MA","zip_code":"01460-1250"}},
{"id":"e1161670-7e76-11e5-8059-a1020f32cce5","type":"branch","phone":"561-893-7700","address":{"street1":"5901 Broken Sound Pkwy. NW","city":"Boca Raton","state":"FL","zip_code":"33487-2773"}},
{"id":"f9ca9ab0-7e7b-11e5-9038-55f9f9c08c06","type":"atm","address":{"street1":"1 Rogers Street","city":"Cambridge","state":"MA","zip_code":"02142"}}]

Commandes Local Test Environment

Le tableau suivant récapitule les commandes Local Test Environment ; utilisez la commande help pour obtenir des détails complets sur l'utilisation de n'importe quelle commande.
Tableau 1. Récapitulatif de la commande Test Environment locale
Commande Descriptif
platform-apic-lte help command Affiche les informations d'aide sur une commande.
platform-apic-lte init Téléchargez les images Local Test Environment Docker .
platform-apic-lte start Démarrez les images Local Test Environment Docker . Utilisez le paramètre --database-max-heap-size pour définir la taille de la base de données Environnement de test Test Environment , en octets, par exemple:
linux-apic-lte start --database-max-heap-size 4096M
linux-apic-lte start --database-max-heap-size 1G
linux-apic-lte start --database-max-heap-size 1048576K
linux-apic-lte start --database-max-heap-size 1073741824
La valeur par défaut est 1024M.
Astuce: Par défaut, la commande platform-apic-lte start supprime toutes les données précédentes et réinitialise la configuration Environnement de test Test Environment , de sorte que toute votre configuration précédente, y compris les produits publiés, est supprimée. Pour conserver la configuration précédente et appliquer les mêmes paramètres de commande que ceux utilisés dans la commande platform-apic-lte start précédente, indiquez le paramètre --keep-config .
platform-apic-lte status Affichez les informations de statut pour les composants Local Test Environment , ainsi que les détails de noeud final et d'authentification.
platform-apic-lte stop Arrêtez les images Local Test Environment Docker .
platform-apic-lte version Affichez les informations de version de l' environnement de test Test Environment .

Traitement des incidents liés à l' environnement de test Test Environment

Vous pouvez consulter le fichier journal de chaque microservice ou base de données Local Test Environment à l'aide de la commande suivante:

docker logs container-name
container-name est l'un des suivants:
  • apic-lte-juhu : la passerelle d'authentification
  • apic-lte-apim : le service API Management
  • apic-lte-lur : le Registre d'utilisateurs local
  • apic-lte-db : la base de données Postgres du service API Management
  • apic-lte-datapower-api-gateway: DataPower API Gateway
  • apic-lte-datapower-gateway: DataPower Gateway (v5 compatible)

Vous accédez aux journaux des passerelles de l'une des façons suivantes :

  • Utilisez l'interface utilisateur Web d'administration de la passerelle :
    1. Ouvrez la page https://localhost:web_ui_port dans un navigateur ; pour plus de détails sur la valeur de port requise, voir Valeurs de port Test Environment locales.
    2. Sélectionnez le domaine apiconnect et l'interface WebGUI, puis connectez-vous avec le nom d'utilisateur admin et le mot de passe admin.
    3. Cliquez sur Afficher les journaux.
  • Utilisez l'interface de ligne de commande d'administration de la passerelle :
    1. Ouvrez une connexion SSH à l'aide de la commande suivante :
      ssh -p gateway-ssh-port localhost
      Pour plus de détails sur la valeur de port requise, voir Valeurs de port de l'environnement de test Test Environment. Le nom d'utilisateur est admin et le mot de passe est admin.
    2. Entrez la commande switch domain apiconnect.
    3. Pour afficher le journal de la passerelle, entrez la commande show log.
    4. Pour afficher le journal de la communication entre la passerelle et le système de gestion des API, entrez la commande show logging gwd-log.

Valeurs de port Local Test Environment

Si l'une des valeurs de port par défaut des composants Local Test Environment est en conflit avec des ports déjà utilisés sur votre système, vous pouvez les modifier lorsque vous démarrez l' Environnement de test Test Environment en transmettant un ou plusieurs paramètres --component port_value à la commande platform-apic-lte start , où:
  • component est le composant Local Test Environment dont vous souhaitez modifier la valeur de port.
  • valeur_port est la valeur requise.
Par exemple :
platform-apic-lte start --datapower-api-gateway-api-port 9445
Le tableau suivant répertorie les composants, ainsi que les paramètres composant correspondants et les valeurs de port par défaut :
Composant Paramètre component Valeur de port par défaut
DataPower API Gateway Port d'API datapower-api-gateway-api-port 9444
Port de service DataPower API Gateway API Connect datapower-api-gateway-apic-service-port 3001
DataPower API Gateway Port de gestion REST datapower-api-gateway-rest-management-port 5555
DataPower API Gateway Port SSH datapower-api-gateway-ssh-port 9023
Interface utilisateur Web d'administration DataPower API Gateway datapower-api-gateway-web-gui-port 9091
DataPower API Gateway Port de gestion XML datapower-api-gateway-xml-management-port 5551
DataPower Gateway (v5 compatible) Port d'API datapower-gateway-api-port 9443
Port de service DataPower Gateway (v5 compatible) API Connect datapower-gateway-apic-service-port 3000
DataPower Gateway (v5 compatible) Port de gestion REST datapower-gateway-rest-management-port 5554
DataPower Gateway (v5 compatible) Port SSH datapower-gateway-ssh-port 9022
Interface utilisateur Web d'administration DataPower Gateway (v5 compatible) datapower-gateway-web-gui-port 9090
DataPower Gateway (v5 compatible) Port de gestion XML datapower-gateway-xml-management-port 5550
Port de l'API de la plateforme platform-api-port 2 000