Prueba de una API con Local Test Environment

Utilizar el Local Test Environment (LTE) para probar API en su máquina local, sin la necesidad de conectarse a unAPI Connect servidor de gestión. El Test Environment local es un Gestor de API ligero que se ejecuta en la máquina local. Permite probar rápidamente las API localmente.

API Connect proporciona los métodos siguientes para probar una API en la máquina local:
  • Invoque la API desde la aplicación de interfaz de usuario de API Designer que se ejecuta en modalidad en línea tal como se describe en Prueba de una API.
  • Llame a la API en el Test Environment local con un mandato cURL , tal como se describe en las secciones siguientes.

Requisitos previos

  • El API Connect kit de herramientas de desarrollador, incluida la interfaz de usuario de Diseñador de API , instalado. Para obtener las instrucciones de instalación y ejecución, consulte Configuración del kit de herramientas de API Connect.
  • Local Test Environment y API Designer deben ser del mismo release de fixpack de API Connect para que funcionen conjuntamente.
  • Debe haberse instalado Docker.
    Nota: El Test Environment local no está soportado con Docker Versión 18.09.x.
  • Un mínimo de 4 GB de RAM disponibles para Docker si se utiliza un único tipo de pasarela, o de 6 GB si se utilizan DataPower® API Gateway y DataPower Gateway (v5 compatible) .
    Nota: A medida que aumente el número de API que se publican en las pasarelas, tendrá que asignar más memoria a Docker. También tendrá que iniciar Local Test Environment con una base de datos más grande; consulte apic-lte start.
  • Si utiliza Windows, asegúrese de que la unidad C: (o la unidad en la que se encuentra el directorio HOME , si es diferente), esté habilitada como una unidad compartida para que los archivos Local Test Environment sean accesibles para los contenedores Docker .

Instalación de Local Test Environment

Hay dos opciones para instalar Local Test Environment:
  • Cada usuario descarga las imágenes de Local Test Environment en su máquina local e instala el Local Test Environment desde allí.
  • Un usuario descarga las imágenes de Local Test Environment y las carga en un registro privado de Docker , desde donde cualquier usuario puede instalar el Local Test Environment.
Para instalar Local Test Environment desde la máquina local, siga estos pasos:
  1. Abra un navegador y visite la API Connect página de anuncios, busque la versión de su producto y localice la tabla "Descargas" en la página de anuncios del producto. En la tabla, pulse el enlace para descargar cada uno de los archivos siguientes:
    • apic-lte-images-version.tar.gz, que contiene todas las imágenes de Docker necesarias.

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

    • apic-lte-platform-version, que son archivos binarios para las plataformas macOS, Linux® y Windows.
      Ejemplos:
      • macOS: apic-lte-osx-10.0.2
      • Linux: apic-lte-linux-10.0.2
      • Windows: apic-lte-win-10.0.2
  2. En la plataforma macOS o Linux, utiliza el comando chmod para hacer ejecutable el archivo binario; por ejemplo:
    chmod +x linux-apic-lte
  3. Cargue las imágenes de Docker en el repositorio de imágenes de Docker local especificando el mandato siguiente:
    docker load < apic-lte-images.tar.gz
Nota: En todos los mandatos Test Environment local que se utilizan en el resto de esta página, sustituya plataforma por macOS, linuxo windows, en función de la plataforma, tal como se indica a continuación:
  • macOS : sustituya platform-apic-lte por osx-apic-lte
  • Linux: sustituya platform-apic-lte por linux-apic-lte
  • Windows: sustituya platform-apic-lte por win-apic-lte
Para cargar las imágenes de Local Test Environment en un registro privado de Docker , realice los pasos siguientes:
  1. Descargue el archivo IBM_API_CONNECT_LOCAL_TEST_ENVIRO.zip tal como se describe en el paso 1.
  2. Distribuya el archivo binario adecuado a todos los usuarios, según la plataforma.
  3. Cargue Test Environment local en el registro privado de Docker ; especifique el mandato siguiente:
    platform-apic-lte registry-upload apic-lte-images.tar.gz registry_host
    donde host_registro es el nombre de host o la dirección IP del registro de Docker privado. Ahora, cualquier usuario puede instalar y ejecutar Local Test Environment de la siguiente manera:
    1. Si el registro de Docker privado requiere autenticación, inicie la sesión especificando el mandato siguiente:
      docker login registry_host
    2. Cargue las imágenes de Docker en el repositorio de imágenes de Docker local especificando el mandato siguiente:
      platform-apic-lte init registry_host

Inicio del Entorno de prueba de Test Environment

  1. Inicie las imágenes de Docker ejecutando el mandato siguiente:
    platform-apic-lte start
    Nota:
    • De forma predeterminada, el mandato platform-apic-lte start sólo inicia un DataPower API Gateway. Para iniciar también un DataPower Gateway (v5 compatible), especifique el mandato siguiente:
      platform-apic-lte start --datapower-gateway-enabled --datapower-api-gateway-enabled
    • Es posible que el Test Environment local no pueda iniciarse con un mensaje de error que incluya las series Error: certificate is not yet valid y CERT_NOT_YET_VALID. La causa más probable es que el valor de fecha y hora sea incorrecto en la máquina que está ejecutando el Entorno de prueba local de Test Environment. Asegúrese de que el valor de fecha y hora sea correcto antes de volver a intentar el mandato de inicio. Si está utilizando Docker para Windows, el reloj de los contenedores Docker puede estar desincronizado con el reloj del sistema, especialmente después de que una máquina se haya situado en modo de inactividad. En este caso, el reinicio de Docker debería corregir la discrepancia de reloj; para obtener más información, consulte https://github.com/docker/for-win/issues/4526.
    • De forma predeterminada, el LTE (entorno de prueba local) empieza con una base de datos de fondo vacía que no contiene las API y productos que pueden haberse publicado durante una ejecución anterior del LTE. Para iniciar el LTE con la base de datos de fondo utilizada durante la ejecución anterior, utilice el indicador --keep-config, por ejemplo, platform-apic-lte start --keep-config. Cuando se utiliza --keep-config, cualquier otro indicador especificado para el inicio se ignora. En lugar de ello, se utilizan los mismos indicadores utilizados durante el inicio anterior, en particular se habilitan las mismas pasarelas.
  2. Verifique que el Test Environment local esté instalado y en ejecución correctamente ejecutando los mandatos siguientes:
    1. Compruebe el estado de los componentes LTE:
      platform-apic-lte status
      Esta salida de este mandato muestra el estado de todos los componentes y proporciona detalles de punto final y autenticación, y la salida debe ser parecida a la siguiente:
      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. Inicie sesión en el servidor de gestión:
      apic login --server localhost:2000 --username shavon --password 7iron-hide --realm provider/default-idp-2
      
      Este mandato confirma que puede iniciar la sesión en el servidor de gestión, y la respuesta debe ser la siguiente:
      Logged into localhost:2000 successfully
      Problema conocido: si recibe un error durante el inicio de sesión, detenga y, a continuación, reinicie el LTE; a continuación, vuelva a iniciar la sesión.
Nota: Para configurar las credenciales del kit de herramientas para el Test Environment local, utilice el siguiente comando:
apic client-creds:set ~/.apic-lte/credentials.json

Preparación de una API para realizar pruebas en Local Test Environment

Para preparar una API para realizar pruebas en Test Environment local, debe publicarla en el catálogo de recinto de pruebas en Test Environment local. Si desea probar una API que ya ha publicado, continúe en Prueba de una API en el Test Environmentlocal., de lo contrario, realice los pasos siguientes:
  1. Inicie la interfaz de usuario API Designer con el siguiente comando:
    APIC_DESIGNER_CREDENTIALS=~/.apic-lte/credentials.json <path-to-designer>
  2. Abra el directorio local necesario; es el directorio en el que se almacenarán los archivos de definición de API y producto.
  3. Conéctese a Local Test Environment. Si no se ha conectado previamente a Local Test Environment, pulse Añadir otra nubey, a continuación, realice los pasos siguientes:
    1. En el campo URL HOST, introduzca https://localhost:2000 y haga clic en Siguiente.
    2. En el campo Nombre de usuario , especifique shavon, en el campo Contraseña especifique 7iron-hidey, a continuación, pulse Iniciar sesión.
      Nota:
      • Si no puede conectarse al Test Environment local utilizando https://localhost:2000, introduzca https://127.0.0.1:2000 en su lugar en el campo URL HOST.
      • Si recibe un error durante el inicio de sesión, detenga y reinicie el LTE; a continuación, vuelva a iniciar sesión con API Designer.

    Si se ha conectado previamente al Test Environmentlocal, pulse el mosaico existente para iniciar la sesión inmediatamente.

    Se abre la página de bienvenida de API Designer .

  4. Pulse Desarrollar APIs y productos y, a continuación, pulse la API que desea probar. Para obtener más información sobre cómo configurar una definición de API, consulte Desarrollo de API y aplicaciones.
  5. Debe publicar su API antes de realizar la prueba. Para obtener instrucciones sobre cómo publicar una API, consulte Publicar un borrador de producto
    Nota: Siempre que realice cambios en una API, debe volver a publicarla antes de volver a realizar la prueba.

Prueba de una API en el Entorno de prueba de Test Environment.

Para probar una API en el Test Environment local, realice una llamada REST API a la siguiente URL :
https://localhost:9444/localtest/sandbox/basepath/operation_path?client_id=lte_client_id
donde:
  • vía_acceso_base es la vía de acceso base configurada en la definición de API.
  • vía_acceso_operación es la vía de acceso para la operación que desea invocar, tal como se ha configurado en la definición de API.
  • lte_client_id es el ID de cliente para la aplicación de prueba en el entorno de prueba local, tal como lo devuelve el mandato platform-apic-lte status en el paso 2.
El ejemplo siguiente muestra cómo probar la API que se crea en la guía de aprendizaje Creación de una definición de API REST de proxy, utilizando el programa de utilidad curl ; la API devuelve los detalles de las sucursales bancarias:
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"}}]

Mandatos Local Test Environment

En la tabla siguiente se resumen los mandatos Local Test Environment ; utilice el mandato help para obtener detalles de uso completos para cualquier mandato.
Tabla 1. Resumen de mandatos de Test Environment local
Mandato Descripción
platform-apic-lte help command Visualizar información de ayuda para cualquier mandato.
platform-apic-lte init Descargue las imágenes de Local Test Environment Docker .
platform-apic-lte start Inicie las imágenes de Local Test Environment Docker . Utilice el parámetro --database-max-heap-size para establecer el tamaño de la base de datos Local Test Environment , en bytes; por ejemplo:
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
El valor predeterminado es 1024M.
Sugerencia: De forma predeterminada, el mandato platform-apic-lte start suprime todos los datos anteriores y vuelve a inicializar la configuración Local Test Environment , por lo que se suprime toda la configuración anterior, incluidos los productos publicados. Para conservar la configuración anterior y aplicar los mismos parámetros de mandato que se han utilizado en el mandato platform-apic-lte start anterior, proporcione el parámetro --keep-config .
platform-apic-lte status Visualizar información de estado para los componentes de Local Test Environment y detalles de punto final y autenticación.
platform-apic-lte stop Detenga las imágenes de Docker de Local Test Environment .
platform-apic-lte version Visualizar información de versión de Test Environment local.

Resolución de problemas de Local Test Environment

Puede consultar el archivo de registro para cada microservicio o base de datos Local Test Environment utilizando el mandato siguiente:

docker logs container-name
donde nombre-contenedor es uno de los siguientes:
  • apic-lte-juhu: la pasarela de autenticación
  • apic-lte-apim: el servicio de gestión de API
  • apic-lte-lur: el registro de usuarios local
  • apic-lte-db: la base de datos Postgres del servicio de gestión de API
  • apic-lte-datapower-api-gateway: DataPower API Gateway
  • apic-lte-datapower-gateway: DataPower Gateway (v5 compatible)

Puede acceder a los registros de pasarela de cualquiera de las maneras siguientes:

  • Utilice la interfaz de usuario web de administración de pasarela:
    1. Abra la página https://localhost:web_ui_port en un navegador; para obtener detalles del valor de puerto necesario, consulte Local Test Environment valores de puerto.
    2. Seleccione el dominio apiconnect y la interfaz WebGUI e inicie la sesión con el nombre de usuario admin y la contraseña admin.
    3. Pulse Ver registros.
  • Utilice la CLI de administración de pasarela:
    1. Abra una conexión SSH utilizando el mandato siguiente:
      ssh -p gateway-ssh-port localhost
      Para obtener detalles del valor de puerto necesario, consulte Local Test Environment valores de puerto. El nombre de usuario es admin y la contraseña es admin.
    2. Especifique el mandato switch domain apiconnect.
    3. Para ver el registro de pasarela, especifique el mandato show log.
    4. Para ver el registro para la comunicación entre la pasarela y el sistema de gestión de API, especifique el mandato show logging gwd-log.

Valores de puerto de Test Environment local

Si alguno de los valores de puerto predeterminados para los componentes Local Test Environment entra en conflicto con los puertos que ya están en uso en el sistema, puede cambiarlos al iniciar el Test Environmentlocal pasando uno o varios parámetros --component port_value al mandato platform-apic-lte start , donde:
  • componente es el componente Local Test Environment cuyo valor de puerto desea cambiar.
  • valor_puerto es el valor necesario.
Por ejemplo:
platform-apic-lte start --datapower-api-gateway-api-port 9445
La tabla siguiente lista los componentes, junto con los parámetros componente correspondientes, y los valores de puerto predeterminados:
Componente Parámetro component Valor de puerto predeterminado
DataPower API Gateway Puerto de API datapower-api-gateway-api-port 9444
Puerto de servicio de DataPower API Gateway API Connect datapower-api-gateway-apic-service-port 3001
DataPower API Gateway Puerto de gestión de REST datapower-api-gateway-rest-management-port 5555
DataPower API Gateway Puerto SSH datapower-api-gateway-ssh-port 9023
Interfaz de usuario web de administración de DataPower API Gateway datapower-api-gateway-web-gui-port 9091
DataPower API Gateway Puerto de gestión XML datapower-api-gateway-xml-management-port 5551
DataPower Gateway (v5 compatible) Puerto de API datapower-gateway-api-port 9443
Puerto de servicio de DataPower Gateway (v5 compatible) API Connect datapower-gateway-apic-service-port 3000
DataPower Gateway (v5 compatible) Puerto de gestión de REST datapower-gateway-rest-management-port 5554
DataPower Gateway (v5 compatible) Puerto SSH datapower-gateway-ssh-port 9022
Interfaz de usuario web de administración de DataPower Gateway (v5 compatible) datapower-gateway-web-gui-port 9090
DataPower Gateway (v5 compatible) Puerto de gestión XML datapower-gateway-xml-management-port 5550
Puerto de API de plataforma platform-api-port 2000