Apidog Docs
🇵🇹 Português (Portugal)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇵🇹 Português (Portugal)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇵🇹 Português (Portugal)
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. Uso de scripts
  • Centro de Aprendizagem da Apidog
  • Primeiros passos
    • Introdução ao Apidog
    • Conceitos Básicos no Apidog
    • Navegar no Apidog
    • Início rápido
      • Visão geral
      • Criar um Endpoint
      • Fazer um Pedido
      • Adicionar uma asserção
      • Criar Cenários de Teste
      • Partilhar Documentação da API
      • Explore Mais
    • Migração para o Apidog
      • Visão geral
      • Importação Manual
      • Importação Agendada (Vincular Fontes de Dados)
      • Opções de Importação
      • Exportar Dados
      • Importar de
        • Importar do Postman
        • Importar especificação OpenAPI
        • Importar cURL
        • Importar Markdowns
        • Importar a partir do Insomnia
        • Importar a partir de apiDoc
        • Importar Ficheiro .har
        • Importar WSDL
  • Apidog Europe
    • Apidog Europe
  • Dados de API mock
    • Visão geral
    • Smart Mock
    • Mock personalizado
    • Sequência de Prioridade do Mock
    • Scripts de Mock
    • Mock na Cloud
    • Mock do Runner Autoalojado
    • Idioma de Mock (Localidades)
  • Conta e preferências
    • Definições da Conta
    • Gerar um Token de Acesso OpenAPI
    • Notificações
    • Definições de Idioma
    • Teclas de Atalho
    • Configuração de Proxy de Rede
    • Cópia de Segurança dos Dados
    • Atualizar o Apidog
    • Eliminar Conta
    • Funcionalidades Experimentais
  • Enviar requisições
    • Visão geral
    • Depuração de SSE
    • Cliente MCP
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP ou WebService
    • GraphQL
    • gRPC
    • Utilizar Agentes de Proxy de Pedido para Depuração
    • Criar requisições
      • Histórico de Pedidos
      • Noções Básicas de Pedidos
      • Parâmetros e Corpo
      • Cabeçalhos do Pedido
      • Definições do Pedido
      • Depurar Pedidos
      • Guardar Pedidos como Endpoints
      • HTTP/2
    • Autenticação e autorização
      • Visão geral
      • Certificados CA e de Cliente
      • Tipos de autorização
      • Autenticação Digest
      • OAuth 1.0
      • OAuth 2.0
      • Autenticação Hawk
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • Resposta e cookies
      • Visualizar Respostas de API
      • Gerir Cookies
      • Visão geral
  • Desenvolver e depurar APIs
    • Visão geral
    • Gerar Pedidos
    • Enviar Pedidos
    • Casos de Depuração
    • Casos de Teste
    • Valores Dinâmicos
    • Validação de Respostas
    • Design-First vs Request-First
    • Geração de Código
    • Ambientes e variáveis
      • Visão geral
      • Utilizar Variáveis
      • Gestão de Ambientes
    • Segredos do cofre
      • Visão geral
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • Módulos de valores dinâmicos
      • Airline
      • Animal
      • Cor
      • Comércio
      • Empresa
      • Base de Dados
      • Tipo de dados
      • Data
      • Finanças
      • Alimentação
      • Git
      • Hacker
      • Helpers
      • Imagem
      • Internet
      • Localização
      • Lorem
      • Música
      • Número
      • Pessoa
      • Telefone
      • Ciência
      • String
      • Sistema
      • Veículo
      • Word
    • Pré e pós-processadores
      • Visão geral
      • Asserção
      • Extrair variável
      • Espera
      • Segurança
      • Operações de banco de dados
        • Visão geral
        • MySQL
        • MongoDB
        • Redis
        • Cliente Oracle
      • Uso de scripts
        • Visão geral
        • Scripts de Pré-processamento
        • Scripts de pós-processamento
        • Scripts Públicos
        • Referência de Scripts do Postman
        • Chamar Outras Linguagens de Programação
        • Utilizar Bibliotecas JS
        • Visualizar Respostas
        • Exemplos de scripts
          • Scripts de Asserção
          • Utilização de Variáveis
          • Modificar Pedidos
          • Outros exemplos
    • Depuração de APIs
      • Depurador de Agentes de IA
      • Depurador A2A
  • Projetar APIs
    • Visão geral
    • Criar um Novo Projeto de API
    • Noções Básicas de Endpoints
    • Diretrizes de Design de API
    • Módulo
    • Configurar vários exemplos de corpo do pedido
    • Componentes
    • Campos Comuns
    • Parâmetros Globais
    • Histórico de Alterações do Endpoint
    • Comentários
    • Gestão de Endpoints em Lote
    • API de Protocolo Personalizado
    • Modo Spec-first (Beta)
    • Esquemas de segurança
      • Visão geral
      • Criar um Esquema de Segurança
      • Utilizar o Esquema de Segurança
      • Esquema de Segurança na Documentação Online
    • Recursos avançados
      • Campos de Endpoint Personalizados
      • Cenários de Teste Associados
      • Estado do endpoint
      • Aparência das listas de parâmetros
      • Identificação Única de Endpoint
    • Schemas
      • Visão geral
      • Criar um Novo Schema
      • Criar um Schema
      • Gerar esquemas a partir de JSON, etc.
      • oneOf, allOf, anyOf
      • Utilizar Discriminator
  • Testes de API
    • Visão geral
    • Cenários de teste
      • Criar um Cenário de Teste
      • Passar Dados Entre Pedidos
      • Condições de Controlo de Fluxo
      • Sincronizar Dados de Endpoints e Casos de Endpoint
      • Importar Endpoints e Casos de Endpoint de Outros Projetos
      • Exportar Cenários de Teste
    • Relatórios de teste
      • Relatórios de Teste
    • Executar cenários de teste
      • Executar um cenário de teste
      • Executar cenários de teste em lote
      • Testes Orientados por Dados
      • Dados de Teste Partilhados
      • Tarefas agendadas
      • Gerir o ambiente de runtime de APIs de outros projetos
    • Suíte de testes
      • Visão geral
      • Criar Uma Suite de Testes
      • Orquestrar Conjunto de Testes
      • Executar Conjuntos de Testes Localmente
      • Executar conjuntos de testes via CLI
      • Tarefas agendadas
    • Testar APIs
      • Testes de Integração
      • Testes de desempenho
      • Testes de Ponta a Ponta
      • Teste de regressão
      • Testes de Contrato
    • Apidog CLI
      • Visão geral
      • Instalar e Executar o Apidog CLI
      • Opções da CLI do Apidog
    • CI/CD
      • Visão geral
      • Integrar com o Github Actions
      • Integrar com o Gitlab
      • Integrar com Jenkins
      • Acionar Teste por Commit Git
  • Publicar documentação de API
    • Visão geral
    • Tecnologias de API Suportadas
    • Partilha Rápida
    • Visualizar a Documentação da API
    • Documentação Markdown
    • Publicar Sites de Documentação
    • Página de Início de Sessão Personalizada
    • Layouts personalizados
    • CSS, JavaScript, HTML personalizados
    • Domínio Personalizado
    • Funcionalidades de IA
    • Definições de SEO
    • Configurações avançadas
      • Pesquisa na Documentação
      • Proxy CORS
      • Integrar o Google Analytics
      • Definições da Árvore de Pastas
      • Definições de Visibilidade
      • Incorporar Valores em URLs de Documentação
    • Versões da API
      • Visão geral
      • Criar Versões de API
      • Publicar versões de API
      • Partilhar Endpoints com Versões da API
  • Branches
    • Visão geral
    • Criar uma Branch de Sprint
    • Testar APIs numa Branch
    • Conceber APIs numa Ramificação
    • Mesclar Branches de Sprint
    • Gerir Branches de Sprint
    • AI Branch (Beta)
  • Recursos de IA
    • Visão geral
    • Ativar Funcionalidades de IA
    • Gerar Casos de Teste
    • Modificar esquemas com IA
    • Verificação de Conformidade do Endpoint
    • Verificação da Completude da Documentação da API
    • Nomeação de Campos com IA
    • Perguntas frequentes
  • Servidor MCP do Apidog
    • Visão geral
    • Ligar o Projeto Apidog à IA
    • Ligar Documentação Publicada à IA
    • Ligar Ficheiros OpenAPI à IA
  • Boas práticas
    • Tratamento de Assinaturas de API
    • Aceder a APIs Protegidas por OAuth 2.0
    • Fluxo de trabalho de colaboração
    • Gestão do Estado de Autenticação
  • Espaço offline
    • Visão geral
  • Administração
    • Gerenciamento de projetos
      • Gerir Projetos
      • Definições de Notificação
      • Gerir Membros do Projeto
      • Recursos do projeto
        • Ligação à Base de Dados
        • Ligação Git
    • Gerenciamento de equipes
      • Gerir Equipas
      • Gerir Membros da Equipa
      • Atividades da Equipa
      • Funções e permissões da equipa
      • Recursos da equipe
        • General Runner
        • Variáveis de Equipa
        • Agente Proxy de Pedidos
      • Colaborações em tempo real
        • Colaboração em Equipa
    • Checklist de integração
      • Conceitos Básicos
      • Guia de Integração Inicial
    • Gerenciamento da organização
      • Gerir a Organização
      • Funções e Permissões da Organização
      • Gerenciamento de planos
        • Gestores de Faturação em Organizações
      • Single Sign-On (SSO)
        • Visão Geral do SSO
        • Configurar o Microsoft Entra ID
        • Configurar o Okta
        • Configurar SSO para uma organização
        • Gerir Contas de Utilizador
        • Mapear Grupos para Equipas
      • Provisionamento SCIM
        • Introdução ao Provisionamento SCIM
        • Microsoft Entra ID
        • Okta
      • Recursos da organização
        • Self-Hosted Runner
  • Cobrança
    • Visão geral
    • Créditos
    • Atualizar o seu plano
    • Métodos de Pagamento Alternativos
    • Gestão de Subscrições
    • Mover Equipas Pagas para Organizações
  • Complementos
    • API Hub
    • Plugin Apidog Intellij IDEA
    • Extensão do navegador
      • Chrome
      • Microsoft Edge
    • Proxy de requisições
      • Proxy de pedidos na Web
      • Proxy de Pedidos em Documentação Partilhada
      • Proxy de Pedido no Cliente
  • Dados e segurança
    • Armazenamento e Segurança de Dados
    • Privacidade e Segurança dos Dados do Utilizador
    • Encaminhamento de Pedidos e Segurança dos Dados
  • Referências
    • Abordagem API Design-First
    • Extensões da Especificação OpenAPI do Apidog
    • JSONPath
    • XPath
    • Expressões Regulares
    • JSON Schema
    • Formato de ficheiro CSV
    • Instalar o Ambiente Java
    • Ambiente de Implementação do Runner
    • Sintaxe Markdown do Apidog
    • Extensões Swagger do Apidog
      • Visão geral
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Extensões JSON Schema do Apidog
      • Visão geral
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • Central de suporte
  1. Uso de scripts

Chamar Outras Linguagens de Programação

O Apidog permite-lhe executar programas externos (scripts, JARs, binários) a partir do seu ambiente Javascript. Isto permite-lhe tirar partido de código existente em linguagens como Java, Python, PHP, Go, Shell, etc.
Aviso de Segurança
Os programas externos são executados fora da sandbox do Apidog e têm acesso total ao seu sistema. Certifique-se de que confia no código que está a executar.

Linguagens Suportadas#

O Apidog infere o comando de execução com base nas extensões dos ficheiros:
LinguagemExtensãoPrefixo do Comando
Java.jarjava -jar
Python.pypython
Node.js.jsnode
PHP.phpphp
Go.gogo run
Shell.shsh
Ruby.rbruby
Lua.lualua

Como Chamar Programas Externos#

1.
Abrir o Diretório de Programas Externos: Clique no ícone da pasta no editor de scripts para abrir o diretório onde os seus scripts externos devem ser colocados.
Diretório de Programas Externos
2.
Executar através de Script: Use pm.executeAsync para chamar o programa.

Referência da API#

pm.executeAsync#

filePath string Caminho do programa externo
args string[] Parâmetros. Ao chamar métodos especificados num pacote jar, será usado JSON.stringify para a conversão. Exceto nesse caso, os tipos não-string serão convertidos implicitamente para string.
options Object
command string O comando de execução do programa externo; a primeira parte do "prefixo do comando" é o comando de execução. Opcional; o valor predefinido é inferido automaticamente (consulte a tabela de "prefixo do comando" acima); pode ser personalizado para qualquer programa.
cwd string Diretório de trabalho do subprocesso. Opcional; a predefinição é "Diretório de Programas Externos".
env Record<string, string> Variáveis de ambiente do subprocesso. Opcional; a predefinição é {}.
windowsEncoding string Codificação usada no sistema Windows. Opcional; a predefinição é "cp936".
className string Especifique o nome da classe a chamar no pacote jar, por exemplo, "com.apidog.Utils".
method string Especifique o nome do método a chamar no pacote jar, por exemplo, "add".
paramTypes string[] Especifique os tipos de parâmetros do método a chamar no pacote jar, por exemplo, ["int", "int"].
Retorno: Promise<string>
Utilização do parâmetro command
Por predefinição, o Apidog usa python para executar ficheiros .py. Se python3 já estiver instalado no computador, command pode ser especificado como python3.

pm.execute#

Recomenda-se usar pm.executeAsync em alternativa.
pm.execute(filePath, args, options)
filePath string Caminho do programa externo
args string[] Parâmetros. Ao chamar métodos especificados num pacote jar, será usado JSON.stringify para a conversão. Exceto nesse caso, os tipos não-string serão convertidos implicitamente para string.
options Object
windowsEncoding string Codificação usada no sistema Windows. Opcional; a predefinição é "cp936".
className string Especifique o nome da classe a chamar no pacote jar, por exemplo, "com.apidog.Utils".
method string Especifique o nome do método a chamar no pacote jar, por exemplo, "add".
paramTypes string[] Especifique os tipos de parâmetros do método a chamar no pacote jar, por exemplo, ["int", "int"].
Retorno: string

Execução e Registos#

Ao executar um programa, o comando executado será impresso na consola (apenas para referência). Se o resultado não corresponder às expectativas, pode copiar o comando e colá-lo em Shell/CMD para depurar.
A consola também imprimirá a "saída padrão (stdout)" e a "saída de erro padrão (stderr)" do processo executado. O conteúdo de stdout (excluindo o carácter de nova linha final) será o resultado final da execução.
TIP
Por razões históricas, pm.execute trata a execução como falhada quando existe conteúdo em stderr. Isto faz com que alguns programas falhem ao gerar avisos ou mensagens de erro. pm.executeAsync passa a usar o código de saída do processo para determinar se a execução falhou.

Entrada e Saída de Programas Externos#

Parâmetros#

Como o programa externo especificado é executado através da linha de comandos, só pode obter os parâmetros transmitidos através de argumentos da linha de comandos.
Por exemplo, no script pm.executeAsync('add.js', [2, 3]), o comando efetivamente executado é node add.js 2 3. Para obter os parâmetros no script externo add.js:
TIP
1.
Linguagens de programação diferentes têm formas diferentes de obter argumentos da linha de comandos; consulte a documentação da linguagem correspondente.
2.
O tipo dos argumentos da linha de comandos é sempre string; é necessário converter com base nos tipos reais.

Valor de Retorno#

Como mencionado acima, o Apidog usa o conteúdo de stdout como o resultado da execução do programa. Portanto, imprimir conteúdo para stdout pode devolver resultados.
Por exemplo, no script const result = await pm.executeAsync('add.js', [2, 3]), o resultado pode ser devolvido por:
1.
Linguagens de programação diferentes têm formas diferentes de imprimir para stdout; consulte a documentação da linguagem correspondente.
2.
O tipo de retorno é string; é necessário converter com base nos tipos reais.
3.
O carácter de nova linha final do resultado será removido.
4.
Ao chamar métodos especificados em pacotes jar, o valor de retorno do método chamado será usado como o valor de retorno final.

Lançar Erros#

Lançar erros pode fazer com que a tarefa atual falhe e interrompa a execução. Por exemplo:
1.
Linguagens de programação diferentes têm formas diferentes de lançar erros; consulte a documentação correspondente.
2.
Em JavaScript, console.error('Error') apenas imprime para stderr, em vez de lançar um erro. Tenha isto em consideração também ao usar outras linguagens.

Informações de Depuração#

Como pm.executeAsync usa o código de saída em vez de stderr para determinar o sucesso, stderr pode ser usado para imprimir informações de depuração sem afetar a execução.
Por exemplo:
TIP
1.
Apenas pm.executeAsync suporta esta forma de imprimir informações de depuração.
2.
Linguagens de programação diferentes têm formas diferentes de imprimir para stderr; consulte a documentação correspondente.

Migrar de pm.execute para pm.executeAsync#

Como o valor de retorno de pm.executeAsync é do tipo Promise, execute não pode ser alterado diretamente para executeAsync. No entanto, pode usar async/await para migrar com alterações mínimas.
TIP
A versão 2.3.24 ou posterior do Apidog (versão 1.2.38 ou posterior da CLI) suporta await de nível superior.
Passos:
1.
Altere execute para executeAsync
2.
Adicione await antes da chamada da função

Chamar Métodos Especificados em Pacotes .jar#

TIP
Esta funcionalidade requer que a versão do Apidog seja 2.1.39 ou posterior. Suporta apenas a chamada de jars com reflection, não jars como Spring Boot que usam reflection interna em tempo de execução.
Por predefinição, chamar um jar invocará o método main na classe Main. Se options.className for especificado, substituirá o comportamento predefinido e chamará, em vez disso, o método especificado no jar.
Chamar métodos especificados em jars é diferente de outros programas externos. O Apidog usará um executor incorporado para encontrar o método no jar por reflection e chamá-lo. Se o método chamado tiver um valor de retorno, este será usado como valor de retorno final após a conversão para string. Caso contrário, funciona da mesma forma que outras chamadas, usando o conteúdo de stdout como valor de retorno.
Por exemplo:
O comando efetivamente executado é:
Em que <app-dist>/assets/JarExecuter-1.1.0-jar-with-dependencies.jar é o executor incorporado, responsável por encontrar o método com.apidog.Test.combine(String,String) no programa do utilizador ./scripts/jar-1.0-SNAPSHOT.jar através de reflection, e por chamá-lo com os parâmetros (string JSON) "hello" e "world".
TIP
paramTypes é opcional. Se não for especificado, os tipos serão inferidos automaticamente com base nos parâmetros. Os inteiros são inferidos como "int", os floats como "double", os booleanos como "boolean", as strings como "String"; as arrays são inferidas com base no primeiro elemento, por exemplo, [3] é inferido como "int[]", [3.14] como "double[]", etc.
Se os tipos inferidos não corresponderem aos tipos de parâmetros reais do método chamado, paramTypes tem de ser especificado manualmente.
Valores suportados na array paramTypes: "Number"、"int"、"Integer"、"long"、"Long"、"short"、"Short"、"float"、"Float"、"double"、"Double"、"boolean"、"Boolean"、"String"、"Number[]"、"int[]"、"Integer[]"、"long[]"、"Long[]"、"short[]"、"Short[]"、"float[]"、"Float[]"、"double[]"、"Double[]"、"boolean[]"、"Boolean[]"、"String[]"
Portanto, o paramTypes no exemplo acima pode ser omitido:

Exemplos#

1. Programa PHP#

Script:
test.php:

2. Programa Jar#

Script:
com.apidog.utils.jar:

Problemas Comuns#

1. Alguns programas requerem ficheiros de configuração do projeto e apresentarão erro se estiverem em falta#

Rust e Go:
Rust:
could not find `Cargo.toml` in `<...>/ExternalPrograms` or any parent directory
Go:
go.mod file not found in current directory or any parent directory; see 'go help modules'
Solução: Use pm.executeAsync e especifique cwd.

2. O MacOS tem Python 3 incorporado, mas não Python 2#

Use pm.executeAsync e defina command como "python3".

3. Comando xxx não encontrado#

Instale o programa correspondente e adicione os diretórios necessários ao PATH do sistema. Consulte a documentação para a instalação do Java.

4. Chamar scripts externos imprime texto ilegível em alguns sistemas Windows#

Defina windowsEncoding como 'utf-8'
Modified at 2026-06-09 08:54:45
Previous
Referência de Scripts do Postman
Next
Utilizar Bibliotecas JS
Built with