Posteado por: edeortuzar | 28/06/2013

Crear un servicio web MOCK a partir de un WSDL


Me vi en la necesidad de simular un servicio web del cual solo tenía el WSDL para cual investigué un poco y, por suerte, llegue a buen puerto.

También puede ser que el web service todavía no exista, se este desarrollando en paralelo, pero nosotros necesitamos avanzar y necesitamos simular un web service. Puede ser que cada llamada al web service genere cargos. Puede ser que el web service no se encuentre en línea.

Si se les da alguna de estas situaciones deben crear un simulador del servicio.

Fácilmente se pueden crear interfaces con un archivo WSDL utilizando el programa WSDL.exe. Tengo una ligera sospecha de que esta herramienta se utiliza para crear el código de cliente de Visual Studio cuando se agrega una nueva referencia Web, pero también se puede realizar a la inversa.

En primer lugar, obtener el WSDL del Web Service que deseamos simular, para hacer esto, simplemente añadimos ?wsdl al final de la URL (tanto para servicios JAVA o .NET) y se obtendrá el WSDL XML. Guardamos esto en nuestra máquina local.

Abra el Visual Studio Command Prompt y escriba wsdl.exe. Usted debe obtener un montón de texto que explica los parámetros del comando, si no lo hace el PATH no esta asignado correctamente. El archivo wsdl.exe debe estar en algún lugar en el equipo, búsquenlo 🙂

Una vez que hayas encontrado la herramienta, escriba:

wsdl /language:CS /namespace:Your.Namespace.Here /out:Directory\To\Save\To\ /protocol:SOAP /serverinterface finally-your-wsdl-file-here.wsdl

Por ejemplo:

wsdl /language:CS /namespace:Seguridad.Dominio /out:c:\ServicioSeguridad /protocol:SOAP /serverinterface PServices.wsdl

El directorio de salida especificado en el parámetro /out debe estar previamente creado, sino dará error.

No es necesario tener el wsdl, podemos indicar la URL donde se encuentra el WSDL.

Hay otras opciones si los necesita, como poder establecer nombre de usuario y contraseñas de proxy, pero el que se muestra es lo que he usado y funciona bien.

Esto creará un archivo .cs en el directorio especificado en /out que contiene una serie de clases que coinciden con las definiciones de los objetos en el WSDL. También contendrá una interfaz que debe implementar a fin de completar el simulador del servicio Web.

Luego, crea una nueva aplicación Web ASP.Net. Agregar el archivo de código que ha generado anteriormente, a continuación, agregar un nuevo servicio web en este proyecto.

En el código de este Web Service, cambie la definición de clase para que implemente la interfaz en el código generado. Visual Studio le ayudará generando los métodos para que la clase coincida con la interfaz.

Y ahí lo tienen, ahora deben generar el código que deseen en cada método para que responda lo que necesitan.

Ahora tiene a su servicio web falso, un simulador de un web service. Ejecutar la aplicación para asegurarse de que funciona, y luego copiar la dirección del nuevo servicio simulado. Introduzca este como la dirección URL del servicio web al que desea llamar en el App/Web.config en lugar del web service real, y su solicitud ahora debe llamar al web service falso (maqueta o web service simulado, como quieran llamarlo) en lugar del web service real.

Esper que les sirva.

Saludos.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: