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:
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-lteporosx-apic-lte - Linux: substituir
platform-apic-lteporlinux-apic-lte - Windows: substituir
platform-apic-lteporwin-apic-lte
Para fazer upload das imagens do Local Test Environment para um registro privado do Docker , conclua as etapas a seguir:
Iniciando o Local Test Environment
- Inicie as imagens do Docker executando o comando a seguir:
platform-apic-lte startNota:- Por padrão, o comando
platform-apic-lte startinicia 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 valideCERT_NOT_YET_VALIDA 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.
- Por padrão, o comando
- Verifique se o Test Environment Local está instalado e executando corretamente executando os comandos a seguir:
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.jsonPreparando 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:
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_idem 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 statusna 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| 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: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çãoapic-lte-apim: o serviço API Managementapic-lte-lur: o Registro do usuário localapic-lte-db: o banco de dados Postgres do serviço API Managementapic-lte-datapower-api-gateway: o DataPower API Gatewayapic-lte-datapower-gateway: o DataPower Gateway (v5 compatible)
É possível acessar os logs do gateway de uma das maneiras a seguir:
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 9445A 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 |