Node.js es un entorno de ejecución de JavaScript multiplataforma, de código abierto y descargable de forma gratuita. Permite a los desarrolladores ejecutar código JavaScript fuera de un navegador web. Lo bueno de Node.js es que es gratuito: todo lo que tienes que hacer es visitar su sitio web para empezar a descargarlo.

Si estás buscando una herramienta para probar una API SOAP que hayas creado en Node.js, ¡Apidog es una gran elección! ¡Todo lo que tienes que hacer es hacer clic en el botón de abajo para empezar a probar! 👇 👇 👇
Este artículo asumirá que has descargado el programa Node.js de su sitio web, por lo tanto, se centrará más en guiar cómo crear una API SOAP.
¿Cuándo deberías considerar la posibilidad de crear API SOAP con Node.js?
Aunque las API SOAP están disminuyendo lentamente, todavía hay muchas situaciones en las que es posible que tengas que crear API SOAP con Node.js para garantizar la interoperabilidad.
Integración con sistemas heredados: SOAP todavía se utiliza ampliamente en los sistemas heredados, y Node.js, con su capacidad para gestionar tareas asíncronas de forma eficiente, puede ser muy adecuado para crear API que se integren perfectamente con estos sistemas.
Requisitos específicos de la industria: Las industrias de la salud y las finanzas pueden seguir dependiendo en gran medida de SOAP debido a las normas y reglamentos establecidos. Node.js puede ayudar a crear API SOAP eficientes y compatibles para estos sectores.
Interoperabilidad con clientes SOAP existentes: Si necesitas conectarte a aplicaciones existentes, o tal vez a un servicio que utilice principalmente SOAP para la comunicación, la creación de una API SOAP de Node.js puede facilitar la interoperabilidad.
Breve resumen de la creación de una API SOAP con Node.js
Antes de entrar en detalles, esta sección proporcionará información sobre la creación de una API SOAP con Node.js.
- Define tu API
La definición de tu API incluye detalles como:
- Funcionalidad: Determina qué operaciones o servicios pretende proporcionar tu API.
- Estructura de datos: Es necesario verificar el formato de los datos intercambiados entre el cliente y la API (que suele ser en XML).
- Archivo WSDL: Necesitas crear un archivo WSDL (Web Services Description Language) que proporcione la descripción de tu API. - Instala la biblioteca
soap
:
En tu terminal, utiliza npm para instalar la bibliotecasoap
. - Implementación de la lógica del lado del servidor:
Importa la bibliotecasoap
en tu API SOAP o servicio web. Durante este período, también debes crear un servidor SOAP implementando el métodosoap.createServer
junto con la ruta de tu archivo WSDL. Por último, pero no menos importante, define una función para gestionar las peticiones entrantes, procesarlas y devolver las respuestas apropiadas al cliente. - Iniciar el servidor:
Implementa el métodoserver.listen
para iniciar el servidor SOAP. Esto permitirá que tu API SOAP reciba peticiones SOAP entrantes en el puerto especificado.
Guía detallada paso a paso sobre la creación de una API SOAP con Node.js
Nota: Los ejemplos de código proporcionados son códigos de muestra para crear una API SOAP que proporciona un saludo a los usuarios en función de sus nombres. Si tienes la intención de utilizar el código para uso personal, asegúrate de que se realizan modificaciones.
Paso 1: Instalar la biblioteca SOAP
Abre tu terminal y ejecuta este comando.
npm install soap
De esta manera, tu API SOAP ahora puede importar la biblioteca soap
, utilizando todos sus métodos.
Paso 2: Preparar el archivo WSDL
Como puedes diseñar tu API SOAP basándote en un archivo WSDL, tendrás que implementar la lógica a través de XML (Extensible Markup Language). Llamaremos a este archivo WSDL greetUser.wsdl
para proporcionar previsibilidad a su funcionalidad.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://tempuri.org/Greeter"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://tempuri.org/Greeter"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:types>
<xsd:complexType name="GreetRequest">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GreetResponse">
<xsd:sequence>
<xsd:element name="greeting" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:types>
<wsdl:message name="GreetRequestMessage">
<wsdl:part name="parameters" element="tns:GreetRequest"/>
</wsdl:message>
<wsdl:message name="GreetResponseMessage">
<wsdl:part name="result" element="tns:GreetResponse"/>
</wsdl:message>
<wsdl:portType name="GreeterPort">
<wsdl:operation name="Greet">
<wsdl:input message="tns:GreetRequestMessage"/>
<wsdl:output message="tns:GreetResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GreeterBinding" type="tns:GreeterPort">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" xmlns:soap="http://schemas.xmlsoap.org/soap/"/>
<wsdl:operation name="Greet">
<soap:operation soapAction="http://tempuri.org/Greeter/Greet"/>
<wsdl:input>
<soap:body use="encoded" parts="tns:parameters"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" parts="tns:result"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="GreeterService">
<wsdl:port name="GreeterPort" binding="tns:GreeterBinding">
<soap:address location="http://localhost:8080/Greeter"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Explicación del código:
El código define un GreeterService
con una operación llamada Greet
. Toma el nombre de un usuario como entrada y devuelve al cliente un mensaje de saludo. También se proporciona la dirección SOAP, que es http://localhost:8080/Greeter"
Paso 3: Generar código de API SOAP del lado del servidor
Para que tus clientes puedan interactuar con el lado del servidor, tienes que preparar el puente, ¡que es esencialmente tu API SOAP! Para este ejemplo, llamaremos a este archivo server.js
, ya que este es el código JavaScript correspondiente para el servidor.
const soap = require('soap');
// Define the service endpoint and port
const url = 'http://localhost:8080/Greeter';
// Create the server
const server = soap.createServer({
wsdl: './greeter.wsdl', // Replace with the actual path to your WSDL file
});
// Define the service method
server.addFunction('Greet', (args) => {
// Extract the name from the request
const name = args.name;
// Generate the greeting message
const greeting = `Hello, ${name}!`;
// Return the greeting as the response
return { greeting };
});
// Start the server
server.listen(process.env.PORT || 8080, () => {
console.log(`SOAP server listening on port ${process.env.PORT || 8080}`);
});
Explicación del código:
- Importa la biblioteca
soap
: La línea 1 importa la bibliotecasoap
que permite la comunicación SOAP en Node.js. - Define el punto final y el puerto del servicio: Las variables de la línea 4 almacenan la URL y el puerto donde será accesible tu servicio SOAP. Recuerda sustituir
http://localhost:8080/Greeter
por la URL real de tu implementación. - Crea el servidor: Las líneas 7 a 9 crean un servidor SOAP utilizando el método
soap.createServer
, especificando la ruta a tu archivo WSDL (greeter.wsdl
). Asegúrate de sustituir esta ruta por la ubicación real de tu archivo WSDL. - Define el método de servicio: Las líneas 12 a 21 definen la función
Greet
que corresponde a la operación en tu WSDL. Extrae el parámetroname
de la petición entrante, genera un mensaje de saludo utilizando el nombre extraído y, posteriormente, devuelve un objeto con la propiedadgreeting
establecida en el mensaje generado. - Inicia el servidor: Las líneas 24 a 26 utilizan el método
server.listen
para iniciar el servidor SOAP en el puerto especificado. Puedes personalizar el puerto estableciendo la variable de entornoPORT
.
Paso 4: Generar código del lado del cliente
Para que tus clientes se pongan en contacto con tu API, necesitan instrucciones o peticiones específicas. Llamaremos a este archivo client.js
para indicar que es el código del lado del cliente.
const soap = require('soap');
// Define the service endpoint
const url = 'http://localhost:8080/Greeter'; // Replace with actual service URL
// Create a client object
soap.createClient(url, (err, client) => {
if (err) {
console.error('Error creating SOAP client:', err);
return;
}
// Define the arguments for the Greet operation
const args = { name: 'John Doe' }; // Replace with desired name
// Call the Greet operation
client.Greet(args, (err, response) => {
if (err) {
console.error('Error calling Greet operation:', err);
return;
}
// Access the greeting message from the response
const greeting = response.greeting;
console.log(greeting); // Output: Hello, John Doe!
});
});
Código Explicación:
- Importa la biblioteca
soap
: Al igual que el código del lado del servidor, la línea 1 importa la bibliotecasoap
para la comunicación SOAP. - Define el punto final del servicio: Esta variable almacena la URL de tu servicio SOAP. Sustituye
http://localhost:8080/Greeter
por la URL real donde está implementado tu servicio. - Crea un objeto cliente: El método
soap.createClient
crea un objeto cliente SOAP que interactúa con el punto final del servicio especificado. - Define los argumentos: Esta sección (línea 14) define los argumentos para la operación
Greet
, incluyendo el nombre del usuario en este caso. - Llama a la operación Greet: El método
client.Greet
llama a la operaciónGreet
en el servidor, pasando los argumentos definidos. - Gestiona la respuesta: La función de devolución de llamada gestiona la respuesta del servidor, donde si se produce un error, registra el mensaje de error, si tiene éxito, extrae el mensaje
greeting
de la respuesta y lo registra en la consola.
Una herramienta API completa para cualquier desarrollador de API - Apidog
Apidog es una herramienta integral de desarrollo de API. Con una orientación de diseño primero, anima a sus usuarios a diseñar, construir y probar visualmente las API con su interfaz de usuario sencilla pero hermosa.

Si estás buscando una herramienta API para probar tu API SOAP, no busques más: ¡Apidog admite la importación de archivos WSDL!
Importar archivo WSDL a Apidog

En primer lugar, haz clic en el botón Settings
que se encuentra en el lado izquierdo de la barra vertical. A continuación, deberías poder encontrar el botón Import Data
, que se encuentra en la sección Data Management
.
Por último, selecciona WSDL
para especificar que estás a punto de importar un archivo WSDL a Apidog.

Si el archivo WSDL se ha importado correctamente, encontrarás tu archivo WSDL a la izquierda, como se muestra en la imagen señalada por la flecha 1. A continuación, puedes hacer clic en las flechas numeradas para empezar a editar.
Una vez que hayas importado y depurado tu archivo WSDL, puedes empezar a probarlo en Apidog para detectar más errores. Si todavía no estás seguro de si tu archivo WSDL es correcto o no, consulta ejemplos de archivos WSDL para obtener más detalles.
Conclusión
Las API SOAP se pueden construir con la ayuda de Node.js. Debido a que Node.js es una tecnología sólida para las tareas asíncronas (incluso puedes emparejar Node.js con API REST), las API SOAP todavía tienen un propósito en la industria del desarrollo web.
Cuando planees crear API SOAP, tienes que asegurarte de que tienes estos tres archivos:
- El archivo WSDL: Es esencialmente la documentación y los detalles de tu API SOAP.
- El código del lado del servidor: Necesitas un código del lado del servidor para asegurarte de que la petición puede ser procesada.
- El código del lado del cliente: Sin el código del lado del cliente, no puedes enviar una petición al servidor, por lo tanto, no puedes recuperar o enviar ningún dato.
Apidog es una excelente opción para aquellos que deseen probar, depurar o documentar API SOAP. Con especificaciones y modificaciones orientadas a todo el ciclo de vida de la API, ¡Apidog puede ayudar a los desarrolladores a crear API sencillas o complejas en pocos minutos!