Apidog

Plataforma de desarrollo de API colaborativa todo en uno

Diseño de API

Documentación de API

Depuración de API

Simulación de API

Prueba automatizada de API

Tutorial de Python: Trabajar con servicios web basados en SOAP

Python es un lenguaje popular usado con y para servicios web basados en SOAP.

Daniel Costa

Daniel Costa

Updated on April 15, 2025

Hay una variedad de lenguajes de cliente que puedes aprender para crear aplicaciones web o servidores para que cualquiera los use. Un lenguaje de cliente popular que mucha gente usa hoy en día es Python. Ya seas ingeniero de software o estudiante universitario durante tu semestre, Python es una opción de lenguaje sólida para añadir a tu arsenal de código.

Si es la primera vez que ves Python, es un lenguaje de programación conocido por su legibilidad y simplicidad. Es mucho más fácil de usar en comparación con otros lenguajes de programación existentes. ¡Puede ser un lenguaje muy adecuado para aprender si estás interesado en saber más sobre el desarrollo web!

Otros casos de uso comunes para Python son en el análisis de datos, la inteligencia artificial y la automatización, así que si estás planeando entrar en estos campos de estudio, ¡es el momento perfecto para empezar a familiarizarte con Python!

Servicios Web Basados en SOAP

¿Qué es SOAP en "Basado en SOAP"?

SOAP, forma abreviada de Simple Object Access Protocol (Protocolo Simple de Acceso a Objetos), es un protocolo para intercambiar información estructurada entre servicios web, sistemas y aplicaciones.

Al cumplir con el protocolo SOAP, estás siguiendo un conjunto de reglas para estructurar mensajes en XML (eXtensible Markup Language), permitiendo que los programas que se ejecutan en diferentes sistemas operativos y tecnologías se comuniquen entre sí.

Componentes Clave de un Mensaje SOAP Típico

Envelope: El elemento más externo que encapsula todo el mensaje SOAP.

Header: Una sección opcional que contiene información adicional para procesar el mensaje.

Body: La parte principal del mensaje que contiene los datos reales o la información de solicitud/respuesta.

Fault: Una sección opcional para informar de errores.

Archivo WSDL que Viene con el Servicio SOAP

La documentación es el mejor amigo de un desarrollador cuando estás probando algo nuevo por primera vez. Para los servicios web SOAP o las API SOAP, el manual de instrucciones viene en forma de archivo WSDL.

WSDL significa Web Services Description Language (Lenguaje de Descripción de Servicios Web), que proporciona descripciones de las funcionalidades del servicio web, los métodos soportados, los tipos de datos utilizados y los protocolos seguidos.

¿Por Qué Considerar el Uso de Python para Trabajar con Servicios Web SOAP?

El uso de Python para trabajar con servicios web basados en SOAP proporciona varias ventajas para los desarrolladores. Aquí hay algunas razones por las que deberías considerar usar y aprender Python:

  1. Simple y Fácil: La sintaxis de Python es muy clara y fácil de leer. Esto permite que escribir, entender y mantener el código de Python sea mucho más sencillo que otros lenguajes de programación.
  2. Extensa Biblioteca: Con Python, innumerables conjuntos de bibliotecas y módulos pueden trabajar con y para servicios web - algunos incluso se especializan en la optimización del consumo de servicios SOAP reduciendo la complejidad del código de Python necesario para interactuar con los servicios web basados en SOAP.
  3. Versatilidad: Python se utiliza en muchos dominios diferentes, que van desde el desarrollo web hasta la ciencia de datos y el aprendizaje automático. Con una buena comprensión de Python y los servicios web, puedes integrar fácilmente los servicios web basados en SOAP en aplicaciones en los campos de trabajo mencionados anteriormente.
  4. Soporte de la Comunidad: Los desarrolladores de Python de todo el mundo contribuyen a la comunidad, produciendo recursos como tutoriales y guías para que los nuevos desarrolladores trabajen con el lenguaje de programación Python, y esto incluye también el trabajo con servicios web basados en SOAP.
  5. Soporte Multiplataforma: El lenguaje de programación Python se puede ejecutar en varios sistemas operativos, como Windows, macOS, Linux y más. Permite que las aplicaciones de Python sean mucho más fáciles de mantener en diferentes entornos de trabajo.

Ejemplos de Interacción de Python y Servicios Web Basados en SOAP Usando la Biblioteca "Suds-Jurko"

Python requiere la biblioteca "suds-jurko" para interactuar con los servicios web basados en SOAP, así que antes de hacer nada, asegúrate de ejecutar la siguiente línea en Bash:

pip install suds-jurko

Interacción Simple con el Servicio SOAP

from suds.client import Client

# Paso 1: Crear un Cliente SOAP
url = 'https://www.example.com/soap-service?wsdl'
client = Client(url)

# Paso 2: Explorar el Servicio
print(client)

# Paso 3: Llamar a un Método SOAP
result = client.service.say_hello('John')

# Paso 4: Manejar la Respuesta
print(result)

Este ejemplo utiliza un servicio SOAP que tiene un método llamado say_hello, que toma un parámetro y devuelve un saludo. ¡Este código es funcional reemplazando la URL https://www.example.com/soap-service?wsdl con la URL real del archivo WSDL de tu servicio SOAP para empezar a trabajar con él en Python!

Usando Python para Manejar Tipos de Datos Complejos

from suds.client import Client

# Paso 1: Crear un Cliente SOAP
url = 'https://www.example.com/complex-service?wsdl'
client = Client(url)

# Paso 2: Explorar el Servicio
print(client)

# Paso 3: Llamar a un Método SOAP con Tipo Complejo
person_data = {'name': 'Alice', 'age': 30, 'city': 'Wonderland'}
result = client.service.process_person_data(person_data)

# Paso 4: Manejar la Respuesta
print(result)

El ejemplo de código Python anterior demuestra un servicio SOAP con un método llamado process_person_data que toma un tipo complejo como parámetro.

Creación de Servicios Web Basados en SOAP Usando Python

Puedes crear tu propio servicio web basado en SOAP (o API SOAP) con el lenguaje Python. Comienza instalando la biblioteca spyne en Bash

pip install spyne

A continuación, debes crear un nuevo archivo Python. Como ejemplo de este artículo, el nombre del archivo sería soap_service.py. Observa que la API SOAP será definida por sypne.

from spyne import Application, rpc, ServiceBase, Iterable, Integer, Unicode

class HelloWorldService(ServiceBase):
    @rpc(Unicode, Integer, _returns=Iterable(Unicode))
    def say_hello(ctx, name, times):
        for i in range(times):
            yield f"Hello, {name}!"

# Crear la aplicación con el servicio especificado
application = Application([HelloWorldService], tns='my_namespace', in_protocol=None, out_protocol=None)

Para asegurar que tu API pueda ejecutarse, añade el siguiente código debajo al archivo que has creado en el paso anterior.

from wsgiref.simple_server import make_server

if __name__ == '__main__':
    server = make_server('0.0.0.0', 8000, application)
    server.serve_forever()

Por último, comprueba si funciona ejecutando el script de Python en Bash.

python soap_service.py

Esta API SOAP debería estar ejecutándose en un servidor HTTP simple con la URL http://0.0.0.0:8000.

Probando la API SOAP de Python Usando Apidog

¿Te preguntas si la API SOAP que hiciste con Python funciona? Prueba a usar Apidog - una potente plataforma API que te permite no solo probar sino también depurar y crear APIs.

En este artículo, se proporcionará una demostración de cómo probar las APIs SOAP de Python (Nota: ¡Esta solicitud es diferente de las solicitudes de Python!).

Requisitos Previos para la Prueba

Para probar la API SOAP de Python, asegúrate de que:

  • La API SOAP de Python ya está en ejecución
  • ¡Instala Apidog haciendo clic en el botón de abajo!
button

También tendrás que elegir con qué cuenta prefieres iniciar sesión en Apidog.

Pasos para Probar la API SOAP de Python en Apidog

Paso 1: Crear una Nueva Solicitud en Apidog

crear nueva solicitud en Apidog
Crear una nueva solicitud en Apidog

Selecciona el botón como se muestra en la imagen de arriba.

Paso 2: Configurar la Nueva Solicitud

cambiar tipo de solicitud url apidog
Configurando Nueva Solicitud

Flecha 1 - Asegúrate de establecer el tipo de solicitud a POST ya que las solicitudes SOAP se envían normalmente a través del método HTTP POST. Aquí, también debes establecer la URL de la Solicitud al punto final de tu API SOAP de Python en ejecución. Un ejemplo de esta URL de solicitud puede ser http://localhost:8000/.

Flecha 2 - Añade cualquier parámetro adicional para que coincida con tu API SOAP.

Paso 3 - Incluir Cabeceras

establecer cabeceras para probar api soap apidog
Estableciendo cabeceras a tu solicitud API

Para llegar a la sección anterior, haz clic en el botón "Cabeceras" y añade las dos cabeceras a tu solicitud:

  • Content-Type: Establece esto a text/xml.
  • SOAPAction: Establece esto a la acción o método SOAP que quieres invocar.

Paso 4 - Establecer el Cuerpo de la Solicitud

estableciendo cuerpo de solicitud raw formato xml apidog
Estableciendo el Cuerpo de la Solicitud para Probar la API SOAP
  • Bajo la sección "Cuerpo", selecciona la opción raw.
  • Construye una solicitud SOAP usando el formato XML que coincida con el método de servicio que quieres llamar en el espacio en blanco señalado por la flecha.

Se puede añadir un ejemplo de solicitud SOAP para un método llamado say_hello, como este:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="my_namespace">
    <soapenv:Header/>
    <soapenv:Body>
        <web:say_hello>
            <name>John</name>
            <times>3</times>
        </web:say_hello>
    </soapenv:Body>
</soapenv:Envelope>

Solo asegúrate de que si se usa el ejemplo de código anterior, el espacio de nombres (my_namespace) y los parámetros del método se reemplacen con los detalles reales de tu servicio.

Paso 5 - Enviar Solicitud y Comprobar Respuesta

Una vez que todo esté listo, presiona el botón "Enviar" que se encuentra alrededor de la esquina superior derecha de la pantalla!

Si tiene éxito, deberías poder ver la respuesta recibida. Comprueba si la respuesta es lo que esperas que sea.

Conclusión

Python es una programación recomendada que ofrece mucha flexibilidad tanto para programadores nuevos como para antiguos. Todo lo que necesitas hacer es seleccionar una plataforma API (como Apidog), y puedes empezar a probar la funcionalidad de tu API SOAP. Sin embargo, por supuesto, puedes usar Apidog para probar las APIs REST de Python también!

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)Tutoriales

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

Daniel Costa

April 15, 2025

Cómo usar n8n con servidores MCPTutoriales

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

Daniel Costa

April 14, 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completaTutoriales

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

Daniel Costa

April 11, 2025