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.
Python - Lenguaje de Programación Popular
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:
- 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.
- 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.
- 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.
- 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.
- 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!
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

Selecciona el botón como se muestra en la imagen de arriba.
Paso 2: Configurar la 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

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 atext/xml
.SOAPAction
: Establece esto a la acción o método SOAP que quieres invocar.
Paso 4 - Establecer el Cuerpo de la Solicitud

- 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!