Apidog Docs
🇪🇸 Español
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇪🇸 Español
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇪🇸 Español
  • 🇺🇸 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 aprendizaje de Apidog
  • Primeros pasos
    • Introducción a Apidog
    • Conceptos básicos en Apidog
    • Navegación por Apidog
    • Inicio rápido
      • Descripción general
      • Crear un Endpoint
      • Realizar una petición
      • Añadir una aserción
      • Creación de escenarios de prueba
      • Compartir documentación de API
      • Explore Más
    • Migración a Apidog
      • Descripción general
      • Importación manual
      • Importación programada (Vincular fuentes de datos)
      • Opciones de importación
      • Exportar datos
      • Importar desde
        • Importar desde Postman
        • Importar especificación OpenAPI
        • Importar cURL
        • Importar archivos Markdown
        • Importar desde Insomnia
        • Importar desde apiDoc
        • Importar archivo .har
        • Importar WSDL
  • Datos de API mock
    • Descripción general
    • Smart Mock
    • Mock personalizado
    • Secuencia de prioridad de mock
    • Scripts de mock
    • Mock en la nube
    • Mock de Runner autoalojado
    • Idioma de mock (locales)
  • Cuenta y preferencias
    • Configuración de la cuenta
    • Generación de un token de acceso OpenAPI
    • Notificación
    • Configuración de idioma
    • Teclas de acceso rápido
    • Configuración del proxy de red
    • Copia de seguridad de los datos
    • Actualizar Apidog
    • Eliminar cuenta
    • Funciones experimentales
  • Enviar peticiones
    • Descripción general
    • Depuración de SSE
    • Cliente MCP
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP o WebService
    • GraphQL
    • gRPC
    • Usar agentes proxy de petición para la depuración
    • Crear peticiones
      • Historial de peticiones
      • Conceptos básicos de las peticiones
      • Parámetros y cuerpo
      • Encabezados de petición
      • Configuración de peticiones
      • Depurar peticiones
      • Guardar peticiones como endpoints
      • HTTP/2
    • Autenticación y autorización
      • Descripción general
      • Certificados de CA y de cliente
      • Tipos de autorización
      • Autenticación Digest
      • OAuth 1.0
      • OAuth 2.0
      • Autenticación Hawk
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • Respuesta y cookies
      • Visualización de respuestas de API
      • Gestión de cookies
      • Descripción general
  • Desarrollar y depurar APIs
    • Descripción general
    • Generación de peticiones
    • Envío de peticiones
    • Casos de depuración
    • Casos de prueba
    • Valores dinámicos
    • Validación de respuestas
    • Diseño primero vs. petición primero
    • Generación de código
    • Entornos y variables
      • Descripción general
      • Uso de variables
      • Gestión de entornos
    • Secretos de la bóveda
      • Descripción general
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • Módulos de valores dinámicos
      • Aerolínea
      • Animal
      • Color
      • Comercio
      • Empresa
      • Base de datos
      • Tipo de dato
      • Fecha
      • Finanzas
      • Comida
      • Git
      • Hacker
      • Helpers
      • Imagen
      • Internet
      • Ubicación
      • Lorem
      • Música
      • Número
      • Persona
      • Teléfono
      • Ciencia
      • String
      • Sistema
      • Vehículo
      • Word
    • Preprocesadores y postprocesadores
      • Descripción general
      • Aserción
      • Extraer variable
      • Esperar
      • Seguridad
      • Operaciones de base de datos
        • Descripción general
        • MySQL
        • MongoDB
        • Redis
        • Cliente Oracle
      • Uso de scripts
        • Descripción general
        • Scripts de preprocesador
        • Scripts de posprocesador
        • Scripts públicos
        • Referencia de scripts de Postman
        • Llamar a otros lenguajes de programación
        • Uso de bibliotecas JS
        • Visualización de respuestas
        • Ejemplos de scripts
          • Scripts de aserción
          • Uso de variables
          • Modificación de peticiones
          • Otros ejemplos
    • Depuración de APIs
      • Depurador de agentes de IA
      • Depurador A2A
  • Diseñar APIs
    • Descripción general
    • Crear un nuevo proyecto de API
    • Conceptos básicos de endpoints
    • Directrices de diseño de API
    • Módulo
    • Configurar múltiples ejemplos de cuerpo de petición
    • Componentes
    • Campos comunes
    • Parámetros globales
    • Historial de cambios del endpoint
    • Comentarios
    • Gestión de endpoints por lotes
    • API de protocolo personalizado
    • Modo Spec-first (Beta)
    • Esquemas de seguridad
      • Descripción general
      • Crear un esquema de seguridad
      • Usar el esquema de seguridad
      • Esquema de seguridad en la documentación en línea
    • Funciones avanzadas
      • Campos personalizados de endpoint
      • Escenarios de prueba asociados
      • Estado del endpoint
      • Apariencia de las listas de parámetros
      • Identificación única de endpoints
    • Schemas
      • Descripción general
      • Crear un nuevo esquema
      • Crear un esquema
      • Generar esquemas a partir de JSON, etc.
      • oneOf, allOf, anyOf
      • Uso de Discriminator
  • Pruebas de API
    • Descripción general
    • Escenarios de prueba
      • Crear un escenario de prueba
      • Pasar datos entre peticiones
      • Condiciones de control de flujo
      • Sincronizar datos desde endpoints y casos de endpoint
      • Importar endpoints y casos de endpoint desde otros proyectos
      • Exportar escenarios de prueba
    • Informes de prueba
      • Informes de prueba
    • Ejecutar escenarios de prueba
      • Ejecutar un escenario de prueba
      • Ejecutar escenarios de prueba por lotes
      • Pruebas basadas en datos
      • Datos de prueba compartidos
      • Tareas programadas
      • Gestionar el entorno de ejecución de API de otros proyectos
    • Suite de pruebas
      • Descripción general
      • Crear una suite de pruebas
      • Orquestar suite de pruebas
      • Ejecutar conjuntos de pruebas localmente
      • Ejecutar suites de prueba mediante CLI
      • Tareas programadas
    • Probar APIs
      • Pruebas de integración
      • Pruebas de rendimiento
      • Pruebas de extremo a extremo
      • Pruebas de regresión
      • Pruebas de contrato
    • Apidog CLI
      • Descripción general
      • Instalación y ejecución de Apidog CLI
      • Opciones de Apidog CLI
    • CI/CD
      • Descripción general
      • Integrar con Github Actions
      • Integrar con Gitlab
      • Integrar con Jenkins
      • Activar prueba mediante commit de Git
  • Publicar documentación de API
    • Descripción general
    • Tecnologías de API compatibles
    • Uso compartido rápido
    • Visualización de la documentación de API
    • Documentación de Markdown
    • Publicación de sitios de documentación
    • Página de inicio de sesión personalizada
    • Diseños personalizados
    • CSS, JavaScript, HTML personalizados
    • Dominio personalizado
    • Funciones de IA
    • Configuración de SEO
    • Configuración avanzada
      • Búsqueda en la documentación
      • Proxy CORS
      • Integración de Google Analytics
      • Configuración del árbol de carpetas
      • Configuración de visibilidad
      • Incrustación de valores en las URL de documentación
    • Versiones de API
      • Descripción general
      • Crear versiones de API
      • Publicación de versiones de API
      • Compartir endpoints con versiones de API
  • Ramas
    • Descripción general
    • Crear una rama de sprint
    • Prueba de APIs en una rama
    • Diseño de API en una rama
    • Fusionar ramas de sprint
    • Gestión de ramas de sprint
    • AI Branch (Beta)
  • Funciones de IA
    • Descripción general
    • Habilitación de funciones de IA
    • Generación de casos de prueba
    • Modificación de esquemas con IA
    • Comprobación de cumplimiento del endpoint
    • Comprobación de integridad de la documentación de API
    • Nomenclatura de campos con IA
    • Preguntas frecuentes
  • Servidor MCP de Apidog
    • Descripción general
    • Conectar un proyecto de Apidog a la IA
    • Conectar documentación publicada a la IA
    • Conectar archivos OpenAPI a la IA
  • Mejores prácticas
    • Gestión de firmas de API
    • Acceso a APIs protegidas con OAuth 2.0
    • Flujo de trabajo de colaboración
    • Gestión del estado de autenticación
  • Espacio sin conexión
    • Descripción general
  • Administración
    • Gestión de proyectos
      • Gestión de proyectos
      • Configuración de notificaciones
      • Gestión de miembros del proyecto
      • Recursos del proyecto
        • Conexión a la base de datos
        • Conexión con Git
    • Gestión de equipos
      • Gestión de equipos
      • Gestión de miembros del equipo
      • Actividades del equipo
      • Roles y permisos del equipo
      • Recursos del equipo
        • General Runner
        • Variables de equipo
        • Agente proxy de peticiones
      • Colaboraciones en tiempo real
        • Colaboración en equipo
    • Lista de verificación de incorporación
      • Conceptos básicos
      • Guía de incorporación
    • Gestión de la organización
      • Gestión de la organización
      • Rol y permisos de la organización
      • Gestión de planes
        • Administradores de facturación en organizaciones
      • Inicio de sesión único (SSO)
        • Descripción general de SSO
        • Configuración de Microsoft Entra ID
        • Configuración de Okta
        • Configuración de SSO para una organización
        • Gestión de cuentas de usuario
        • Asignar grupos a equipos
      • Aprovisionamiento SCIM
        • Introducción al aprovisionamiento SCIM
        • Microsoft Entra ID
        • Okta
      • Recursos de la organización
        • Runner autohospedado
  • Facturación
    • Descripción general
    • Créditos
    • Actualizar su plan
    • Métodos de pago alternativos
    • Gestión de suscripciones
    • Trasladar equipos de pago a organizaciones
  • Complementos
    • API Hub
    • Plugin Apidog Intellij IDEA
    • Extensión del navegador
      • Chrome
      • Microsoft Edge
    • Proxy de peticiones
      • Proxy de peticiones en la web
      • Proxy de petición en documentos compartidos
      • Proxy de peticiones en el cliente
  • Datos y seguridad
    • Almacenamiento y seguridad de datos
    • Privacidad y seguridad de los datos del usuario
    • Enrutamiento de peticiones y seguridad de datos
  • Referencias
    • Enfoque de diseño de API primero
    • Extensiones de la especificación OpenAPI de Apidog
    • JSONPath
    • XPath
    • Expresiones regulares
    • JSON Schema
    • Formato de archivo CSV
    • Instalación del entorno Java
    • Entorno de implementación de Runner
    • Sintaxis Markdown de Apidog
    • Extensiones Swagger de Apidog
      • Descripción general
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Extensiones JSON Schema de Apidog
      • Descripción general
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • Apidog Europa
    • Apidog Europe
  • Centro de soporte
  1. Uso de scripts

Llamar a otros lenguajes de programación

Apidog le permite ejecutar programas externos (scripts, JAR, binarios) desde su entorno Javascript. Esto le permite aprovechar código existente en lenguajes como Java, Python, PHP, Go, Shell, etc.
Aviso de seguridad
Los programas externos se ejecutan fuera del sandbox de Apidog y tienen acceso completo a su sistema. Asegúrese de confiar en el código que está ejecutando.

Lenguajes compatibles#

Apidog infiere el comando de ejecución según las extensiones de archivo:
LenguajeExtensiónPrefijo de comando
Java.jarjava -jar
Python.pypython
Node.js.jsnode
PHP.phpphp
Go.gogo run
Shell.shsh
Ruby.rbruby
Lua.lualua

Cómo llamar a programas externos#

1.
Abra el directorio de programas externos: Haga clic en el icono de carpeta en el editor de scripts para abrir el directorio donde deben colocarse sus scripts externos.
Directorio de programas externos
2.
Ejecute mediante script: Use pm.executeAsync para llamar al programa.

Referencia de API#

pm.executeAsync#

filePath string Ruta del programa externo
args string[] Parámetros. Al llamar a métodos especificados en un paquete jar, se usará JSON.stringify para la conversión. Excepto en ese caso, los tipos que no sean string se convertirán implícitamente a string.
options Object
command string El comando de ejecución del programa externo; la primera parte de "prefijo de comando" es el comando de ejecución. Opcional; el valor predeterminado se infiere automáticamente (consulte la tabla de "prefijo de comando" anterior); puede personalizarse con cualquier programa.
cwd string Directorio de trabajo del subproceso. Opcional; el valor predeterminado es "Directorio de programas externos".
env Record<string, string> Variables de entorno del subproceso. Opcional; el valor predeterminado es {}.
windowsEncoding string Codificación usada en el sistema Windows. Opcional; el valor predeterminado es "cp936".
className string Especifique el nombre de la clase que se llamará en el paquete jar, por ejemplo, "com.apidog.Utils".
method string Especifique el nombre del método que se llamará en el paquete jar, por ejemplo, "add".
paramTypes string[] Especifique los tipos de parámetros del método que se llamará en el paquete jar, por ejemplo, ["int", "int"].
Retorno: Promise<string>
Uso del parámetro command
De forma predeterminada, Apidog usa python para ejecutar archivos .py. Si python3 ya está instalado en el equipo, command puede especificarse como python3.

pm.execute#

Se recomienda usar pm.executeAsync en su lugar.
pm.execute(filePath, args, options)
filePath string Ruta del programa externo
args string[] Parámetros. Al llamar a métodos especificados en un paquete jar, se usará JSON.stringify para la conversión. Excepto en ese caso, los tipos que no sean string se convertirán implícitamente a string.
options Object
windowsEncoding string Codificación usada en el sistema Windows. Opcional; el valor predeterminado es "cp936".
className string Especifique el nombre de la clase que se llamará en el paquete jar, por ejemplo, "com.apidog.Utils".
method string Especifique el nombre del método que se llamará en el paquete jar, por ejemplo, "add".
paramTypes string[] Especifique los tipos de parámetros del método que se llamará en el paquete jar, por ejemplo, ["int", "int"].
Retorno: string

Ejecución y registros#

Al ejecutar un programa, el comando ejecutado se imprimirá en la consola (solo como referencia). Si el resultado no cumple las expectativas, puede copiar el comando y pegarlo en Shell/CMD para depurar.
La consola también imprimirá la "salida estándar (stdout)" y la "salida de error estándar (stderr)" del proceso ejecutado. El contenido de stdout (excluido el carácter de nueva línea final) será el resultado final de la ejecución.
TIP
Por razones históricas, pm.execute trata la ejecución como fallida cuando hay contenido en stderr. Esto hace que algunos programas fallen al generar advertencias o mensajes de error. pm.executeAsync cambia para usar el código de salida del proceso a fin de determinar si la ejecución falló.

Entrada y salida de programas externos#

Parámetros#

Dado que el programa externo especificado se ejecuta mediante línea de comandos, solo puede obtener los parámetros pasados mediante argumentos de línea de comandos.
Por ejemplo, en el script pm.executeAsync('add.js', [2, 3]), el comando ejecutado real es node add.js 2 3. Para obtener los parámetros en el script externo add.js:
TIP
1.
Diferentes lenguajes de programación tienen distintas formas de obtener argumentos de línea de comandos; consulte la documentación del lenguaje correspondiente.
2.
El tipo de los argumentos de línea de comandos siempre es string; debe convertirlo según los tipos reales.

Valor de retorno#

Como se mencionó anteriormente, Apidog usa el contenido de stdout como resultado de la ejecución del programa. Por lo tanto, imprimir contenido en stdout puede devolver resultados.
Por ejemplo, en el script const result = await pm.executeAsync('add.js', [2, 3]), el resultado puede devolverse mediante:
1.
Diferentes lenguajes de programación tienen distintas formas de imprimir en stdout; consulte la documentación del lenguaje correspondiente.
2.
El tipo de retorno es string; debe convertirlo según los tipos reales.
3.
Se recortará el carácter de nueva línea final del resultado.
4.
Al llamar a métodos especificados en paquetes jar, el valor de retorno del método llamado se usará como valor de retorno final.

Lanzar errores#

Lanzar errores puede hacer que la tarea actual falle y detener la ejecución. Por ejemplo:
1.
Diferentes lenguajes de programación tienen distintas formas de lanzar errores; consulte la documentación correspondiente.
2.
En JavaScript, console.error('Error') solo imprime en stderr en lugar de lanzar un error. Tenga esto en cuenta también al usar otros lenguajes.

Información de depuración#

Dado que pm.executeAsync usa el código de salida en lugar de stderr para determinar el éxito, stderr puede usarse para imprimir información de depuración sin afectar la ejecución.
Por ejemplo:
TIP
1.
Solo pm.executeAsync admite esta forma de imprimir información de depuración.
2.
Diferentes lenguajes de programación tienen distintas formas de imprimir en stderr; consulte la documentación correspondiente.

Migrar de pm.execute a pm.executeAsync#

Dado que el valor de retorno de pm.executeAsync es de tipo Promise, execute no puede cambiarse directamente a executeAsync. Pero puede usar async/await para migrar con cambios mínimos.
TIP
Apidog versión 2.3.24 o posterior (CLI versión 1.2.38 o posterior) admite await de nivel superior.
Pasos:
1.
Cambie execute a executeAsync
2.
Añada await antes de la llamada a la función

Llamar a métodos especificados en paquetes .jar#

TIP
Esta función requiere que la versión de Apidog sea 2.1.39 o posterior. Solo admite llamar a jars con reflexión, no a jars como Spring Boot que usan reflexión en tiempo de ejecución interna.
De forma predeterminada, llamar a un jar invocará el método main en la clase Main. Si se especifica options.className, anulará el comportamiento predeterminado y llamará al método especificado en el jar en su lugar.
Llamar a métodos especificados en jars es diferente de otros programas externos. Apidog usará un ejecutor integrado para encontrar el método en el jar mediante reflexión y llamarlo. Si el método llamado tiene un valor de retorno, se usará como valor de retorno final después de convertirlo a string. De lo contrario, funciona igual que otras llamadas, usando el contenido de stdout como valor de retorno.
Por ejemplo:
El comando ejecutado real es:
Donde <app-dist>/assets/JarExecuter-1.1.0-jar-with-dependencies.jar es el ejecutor integrado, responsable de encontrar el método com.apidog.Test.combine(String,String) en el programa del usuario ./scripts/jar-1.0-SNAPSHOT.jar mediante reflexión, y llamarlo con los parámetros (cadena JSON) "hello" y "world".
TIP
paramTypes es opcional. Si no se especifica, los tipos se inferirán automáticamente según los parámetros. Los enteros se infieren como "int", los flotantes como "double", los booleanos como "boolean", las cadenas como "String", y los arrays se infieren según el primer elemento; por ejemplo, [3] se infiere como "int[]", [3.14] como "double[]", etc.
Si los tipos inferidos no coinciden con los tipos de parámetros reales del método llamado, paramTypes debe especificarse manualmente.
Valores admitidos en el 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[]"
Por lo tanto, el paramTypes del ejemplo anterior puede omitirse:

Ejemplos#

1. Programa PHP#

Script:
test.php:

2. Programa Jar#

Script:
com.apidog.utils.jar:

Problemas comunes#

1. Algunos programas requieren archivos de configuración de proyecto y generarán un error si faltan#

Rust y 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'
Solución: Use pm.executeAsync y especifique cwd.

2. MacOS tiene Python 3 integrado, pero no Python 2#

Use pm.executeAsync y establezca command en "python3".

3. Command xxx not found#

Instale el programa correspondiente y añada los directorios necesarios al PATH del sistema. Consulte la documentación para la instalación de Java.

4. Llamar a scripts externos imprime caracteres ilegibles en algunos sistemas Windows#

Establezca windowsEncoding en 'utf-8'
Modified at 2026-06-09 08:52:14
Previous
Referencia de scripts de Postman
Next
Uso de bibliotecas JS
Built with