Testando uma API com o Local Test Environment

Use o Local Test Environment (LTE) para testar APIs em sua máquina local, sem a necessidade de se conectar a umAPI Connect servidor de gerenciamento. O Local Test Environment é um API Manager leve em execução na máquina local. Ele permite testar APIs com rapidez e localmente.

O API Connect fornece os seguintes métodos para testar uma API em sua máquina local:
  • Chame a API do aplicativo da IU do API Designer em execução no modo Online, conforme descrito em Testando uma API.
  • Chame a API no Local Test Environment com um comando cURL , conforme descrito nas seções a seguir.

Pré-requisitos

  • O API Connect kit de ferramentas do desenvolvedor, incluindo a interface com o usuário do API Designer , instalado. Para obter instruções de instalação e execução, consulte Configurando o kit de ferramentas API Connect.
  • O Local Test Environment e o API Designer devem ser da mesma liberação do fix pack API Connect para que eles trabalhem juntos.
  • Docker instalado.
    Nota: o Local Test Environment não é suportado com o Docker Versão 18.09.x.
  • Um mínimo de 4 GB de RAM disponível para o Docker se um único tipo de gateway for usado ou 6 GB se o DataPower® API Gateway e o DataPower Gateway (v5 compatible) forem usados.
    Nota: conforme você aumenta o número de APIs que são publicadas em seus gateways, será necessário alocar memória adicional para o Docker. Também será necessário iniciar o Local Test Environment com um banco de dados maior; consulte apic-lte start
  • Se você estiver usando o Windows, assegure-se de que a unidade C: (ou a unidade na qual o diretório HOME está localizado, se diferente) esteja ativada como uma unidade compartilhada para que os arquivos Local Test Environment estejam acessíveis para os contêineres Docker .

Instalando o Local Test Environment

Há duas opções para instalar o Local Test Environment:
  • Cada usuário faz download das imagens do Local Test Environment para sua máquina local e instala o Local Test Environment de lá.
  • Um usuário faz download das imagens do Local Test Environment e faz upload delas para um registro privado do Docker , de onde qualquer usuário pode instalar o Local Test Environment.
Para instalar o Local Test Environment a partir de sua máquina local, conclua as etapas a seguir:
  1. Abra um navegador e acesse a API Connect página de anúncio, pesquise a versão do seu produto e localize a tabela "Downloads" na página de anúncio do produto. Na tabela, clique no link para fazer o download de cada um dos arquivos a seguir:
    • apic-lte-images-version.tar.gz, que contém todas as imagens necessárias do Docker.

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

    • apic-lte-platform-versionque são arquivos binários para as plataformas macOSLinux®, e plataformas Windows.
      Exemplos:
      • macOS: apic-lte-osx-10.0.2
      • Linux: apic-lte-linux-10.0.2
      • Windows: apic-lte-win-10.0.2
  2. Na plataforma macOS ou Linux, use o comando chmod para tornar o arquivo binário executável; por exemplo:
    chmod +x linux-apic-lte
  3. Carregue as imagens do Docker em seu repositório de imagens do Docker local ao inserir o comando a seguir:
    docker load < apic-lte-images.tar.gz
Nota: em todos os comandos Local Test Environment que são usados no restante desta página, substitua platform por macOS, linuxou windows, dependendo de sua plataforma, conforme a seguir:
  • macOS : substitua platform-apic-lte por osx-apic-lte
  • Linux: substituir platform-apic-lte por linux-apic-lte
  • Windows: substituir platform-apic-lte por win-apic-lte
Para fazer upload das imagens do Local Test Environment para um registro privado do Docker , conclua as etapas a seguir:
  1. Faça download do arquivo IBM_API_CONNECT_LOCAL_TEST_ENVIRO.zip conforme descrito na etapa 1.
  2. Distribua o arquivo binário apropriado para todos os usuários, de acordo com a plataforma.
  3. Faça upload do Local Test Environment para seu registro privado do Docker ; insira o comando a seguir:
    platform-apic-lte registry-upload apic-lte-images.tar.gz registry_host
    em que registry_host é o nome do host ou o endereço IP do seu registro do Docker privado. Agora, qualquer usuário pode instalar e executar o Local Test Environment conforme a seguir:
    1. Se o registro do Docker privado requerer autenticação, efetue login ao inserir o comando a seguir:
      docker login registry_host
    2. Carregue as imagens do Docker em seu repositório de imagens do Docker local ao inserir o comando a seguir:
      platform-apic-lte init registry_host

Iniciando o Local Test Environment

  1. Inicie as imagens do Docker executando o comando a seguir:
    platform-apic-lte start
    Nota:
    • Por padrão, o comando platform-apic-lte start inicia apenas um DataPower API Gateway Para também iniciar um DataPower Gateway (v5 compatible), insira o seguinte comando:
      platform-apic-lte start --datapower-gateway-enabled --datapower-api-gateway-enabled
    • O Local Test Environment pode falhar ao iniciar com uma mensagem de erro que inclui as sequências Error: certificate is not yet valid e CERT_NOT_YET_VALID A causa mais provável é que a configuração de data e hora esteja incorreta na máquina que está executando o Local Test Environment. Assegure-se de que a configuração de data e hora esteja correta, antes de tentar o comando inicial novamente. Se você estiver usando o Docker for Windows, o relógio nos contêineres do Docker poderá ficar fora de sincronização com o relógio do sistema, especialmente após uma máquina ter sido colocada no modo de hibernação. Nesse caso, reiniciar o Docker deve corrigir a discrepância do relógio; para obter mais informações, consulte https://github.com/docker/for-win/issues/4526.
    • Por padrão, o LTE começa com um banco de dados de back-end vazio que não contém as APIs e Produtos que podem ter sido publicados durante uma execução anterior do LTE. Para iniciar o LTE com o banco de dados de back-end que foi usado durante a execução anterior, use a sinalização --keep-config, por exemplo, platform-apic-lte start --keep-config. Ao usar --keep-config, qualquer outra sinalização especificada para o início é ignorada. Em vez disso, as mesmas sinalizações que foram usadas durante o início anterior são usadas e, em particular, os mesmos gateways são ativados.
  2. Verifique se o Test Environment Local está instalado e executando corretamente executando os comandos a seguir:
    1. Verifique o status dos componentes LTE:
      platform-apic-lte status
      Essa saída desse comando mostra o status de todos os componentes, fornece detalhes do terminal e da autenticação e deve ser semelhante ao seguinte:
      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. Efetue login no servidor de gerenciamento:
      apic login --server localhost:2000 --username shavon --password 7iron-hide --realm provider/default-idp-2
      
      Esse comando confirma que é possível efetuar login no servidor de gerenciamento e a resposta deverá ser a seguinte:
      Logged into localhost:2000 successfully
      Problema conhecido: se você receber um erro durante o login, pare e, em seguida, reinicie o LTE; em seguida, efetue login novamente.
Observação: para configurar as credenciais do kit de ferramentas para o Test Environment local, use o seguinte comando:
apic client-creds:set ~/.apic-lte/credentials.json

Preparando uma API para teste no Local Test Environment

Para preparar uma API para teste no Local Test Environment, deve-se publicá-la no Catálogo do Sandbox no Local Test Environment. Se você desejar testar uma API que já tenha publicado, continue em Testando uma API no Test EnvironmentLocal, caso contrário, conclua as etapas a seguir:
  1. Inicie a interface de usuário do API Designer com o seguinte comando:
    APIC_DESIGNER_CREDENTIALS=~/.apic-lte/credentials.json <path-to-designer>
  2. Abra o diretório local necessário. Esse é o diretório no qual seus arquivos de definição de API e de produto serão armazenados.
  3. Conecte-se ao Local Test Environment Se você não tiver se conectado anteriormente ao Local Test Environment, clique em Incluir outra nuveme, em seguida, conclua as etapas a seguir:
    1. No campo HOST URL, digite https://localhost:2000 e clique em Next.
    2. No campo Nome do usuário , insira shavon, no campo Senha , insira 7iron-hidee, em seguida, clique em Conectar
      Nota:
      • Se não for possível se conectar ao Test Environment local usando https://localhost:2000, digite https://127.0.0.1:2000 no campo HOST URL.
      • Se você receber um erro durante o login, pare e reinicie o LTE; em seguida, efetue login com o API Designer novamente.

    Se você tiver se conectado anteriormente ao Local Test Environment, clique no quadro existente para efetuar login imediatamente.

    A página de boas-vindas do API Designer é aberta..

  4. Clique em Desenvolver APIs e produtos e, em seguida, clique na API que você deseja testar. Para obter detalhes sobre como configurar uma definição de API, consulte Desenvolvimento de APIs e aplicativos.
  5. Você deve publicar sua API antes de testar. Para obter instruções sobre como publicar uma API, consulte Publicação de um rascunho de produto
    Nota: sempre que você fizer mudanças em uma API, deverá publicá-la novamente antes de testar novamente.

Testando uma API no Local Test Environment.

Para testar uma API no Test Environment local, faça uma chamada de API REST para o seguinte URL :
https://localhost:9444/localtest/sandbox/basepath/operation_path?client_id=lte_client_id
em que:
  • basepath é o caminho base que está configurado na definição de API.
  • operation_path é o caminho para a operação que você deseja chamar, conforme configurado na definição de API.
  • lte_client_id é o ID do cliente para o aplicativo de teste no ambiente de teste local, conforme retornado pelo comando platform-apic-lte status na etapa 2.
O exemplo a seguir mostra como testar a API que é criada no tutorial Criando uma definição de API de REST do proxy, usando o utilitário curl ; a API retorna os detalhes de filiais do banco:
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"}}]

Comandos Local Test Environment

A tabela a seguir resume os comandos Local Test Environment ; use o comando help para obter detalhes completos de uso para qualquer comando
Tabela 1. Local Test Environment Resumo do Comando
Comando Descrição
platform-apic-lte help command Exibir informações da ajuda para qualquer comando.
platform-apic-lte init Faça download das imagens do Local Test Environment Docker .
platform-apic-lte start Inicie as imagens do Local Test Environment Docker . Use o parâmetro --database-max-heap-size para configurar o tamanho do banco de dados Local Test Environment , em bytes; por exemplo:
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
O valor padrão é 1024M.
Dica: por padrão, o comando platform-apic-lte start exclui todos os dados anteriores e reinicializa a configuração Local Test Environment , portanto, toda a sua configuração anterior, incluindo Produtos publicados, é excluída Para reter a configuração anterior e para aplicar os mesmos parâmetros de comando que foram usados no comando platform-apic-lte start anterior, forneça o parâmetro --keep-config.
platform-apic-lte status Exiba informações de status para os componentes do Local Test Environment e detalhes de terminal e autenticação.
platform-apic-lte stop Pare as imagens do Local Test Environment Docker .
platform-apic-lte version Exibir informações da versão do Ambiente de Teste Test Environment .

Resolução de problemas do Local Test Environment

É possível consultar o arquivo de registro para cada microsserviço ou banco de dados Local Test Environment usando o comando a seguir:

docker logs container-name
em que container-name é um dos seguintes:
  • apic-lte-juhu: o gateway de autenticação
  • apic-lte-apim: o serviço API Management
  • apic-lte-lur: o Registro do usuário local
  • apic-lte-db: o banco de dados Postgres do serviço API Management
  • apic-lte-datapower-api-gateway: o DataPower API Gateway
  • apic-lte-datapower-gateway: o DataPower Gateway (v5 compatible)

É possível acessar os logs do gateway de uma das maneiras a seguir:

  • Use a IU da web de administração do gateway:
    1. Abra a página https://localhost:web_ui_port em um navegador; para obter detalhes do valor de porta necessário, consulte Local Test Environment valores de porta.
    2. Selecione o domínio apiconnect e a interface WebGUI e efetue login com o nome de usuário admin e a senha admin.
    3. Clique em Visualizar Logs
  • Use a CLI de administração do gateway:
    1. Abra uma conexão SSH usando o comando a seguir:
      ssh -p gateway-ssh-port localhost
      Para obter detalhes do valor de porta necessário, consulte Local Test Environment valores de porta. O nome do usuário é admin , e a senha é admin
    2. Insira o comando switch domain apiconnect.
    3. Para visualizar o log do gateway, insira o comando show log.
    4. Para visualizar o log para a comunicação entre o gateway e o sistema de gerenciamento de API, insira o comando show logging gwd-log.

Valores da porta Local Test Environment

Se qualquer um dos valores de porta padrão para os componentes do Local Test Environment entrar em conflito com as portas já em uso em seu sistema, será possível alterá-los ao iniciar o Local Test Environment passando um ou mais parâmetros --component port_value para o comando platform-apic-lte start , em que:
  • component é o componente Local Test Environment cujo valor de porta você deseja alterar.
  • port_value é o valor necessário.
Por exemplo:
platform-apic-lte start --datapower-api-gateway-api-port 9445
A tabela a seguir lista os componentes, os parâmetros component correspondentes e os valores de porta padrão:
Componente Parâmetro component Valor de porta padrão
DataPower API Gateway Porta API datapower-api-gateway-api-port 9444
DataPower API Gateway API Connect porta de serviço datapower-api-gateway-apic-service-port 3001
DataPower API Gateway Porta de gerenciamento de REST datapower-api-gateway-rest-management-port 5555
DataPower API Gateway Porta SSH datapower-api-gateway-ssh-port 9023
UI da web de administração do DataPower API Gateway datapower-api-gateway-web-gui-port 9091
DataPower API Gateway Porta de gerenciamento de XML datapower-api-gateway-xml-management-port 5551
DataPower Gateway (v5 compatible) Porta API datapower-gateway-api-port 9443
DataPower Gateway (v5 compatible) API Connect porta de serviço datapower-gateway-apic-service-port 3000
DataPower Gateway (v5 compatible) Porta de gerenciamento de REST datapower-gateway-rest-management-port 5554
DataPower Gateway (v5 compatible) Porta SSH datapower-gateway-ssh-port 9022
UI da web de administração do DataPower Gateway (v5 compatible) datapower-gateway-web-gui-port 9090
DataPower Gateway (v5 compatible) Porta de gerenciamento de XML datapower-gateway-xml-management-port 5550
Porta da API da plataforma platform-api-port US$ 2.000