Pruebas de Servicios Web, ¿Codificar o No Codificar?

24

Transcript of Pruebas de Servicios Web, ¿Codificar o No Codificar?

Page 1: Pruebas de Servicios Web, ¿Codificar o No Codificar?
Page 2: Pruebas de Servicios Web, ¿Codificar o No Codificar?

Tabla de Contenidos

1. Introducción

2. Pruebas de Servicios Web

3. Conclusiones

Page 3: Pruebas de Servicios Web, ¿Codificar o No Codificar?

INTRODUCCIÓN

Page 4: Pruebas de Servicios Web, ¿Codificar o No Codificar?

La interfaz de programación de aplicaciones (IPA), abreviada como API (del inglés: Application Programming Interface), es el conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.

1.1 ¿Qué es una API?

Page 5: Pruebas de Servicios Web, ¿Codificar o No Codificar?

El término API generalmente se refiere a ambos lados de los sistemas informáticos que comunican a través de una red: los servicios ofrecidos por la API de un servidor, así como la API ofrecida por el cliente, como un navegador web. La porción del lado del servidor de la API es una interfaz de programación de un sistema de mensajes de petición-respuesta definida, y se conoce normalmente como el servicio web. Hay varios modelos de diseño para servicios web, pero los más dominante son SOAP y REST.

1.1 ¿Qué es una API?

Page 6: Pruebas de Servicios Web, ¿Codificar o No Codificar?

Las APIs han visto un enorme crecimiento en los últimos dos años. Mientras que las APIs no son exactamente un fenómeno nuevo (APIs internos se han utilizado para la interacción de equipo a equipo desde los años 90), han visto un gran crecimiento en estos últimos años. Con la evolución de la Web en lo que muchos se refieren como la Web programable, la necesidad de una mayor interconexión entre aplicaciones está en su punto más alto, y sigue creciendo.

1.1 ¿Qué es una API?

Page 7: Pruebas de Servicios Web, ¿Codificar o No Codificar?

1.1 ¿Qué es una API?

Resultados de www.yelp.es

Page 8: Pruebas de Servicios Web, ¿Codificar o No Codificar?

Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definición que englobe todo lo que son e implican. Una posible sería hablar de ellos como un conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamando a estos procedimientos a través de la Web.

1.2 ¿Qué es un Servicio Web?

Page 9: Pruebas de Servicios Web, ¿Codificar o No Codificar?

1.3 Arquitectura de los Servicios Web

Capa 4: Publicación y Localización de Servicios

UDDI

Capa 3: Descripción de Servicios

WSDL

Capa 2: Descripción de Servicios/empaquetado

SOAP

Capa 1: Transporte

HTTP, FTP, SMTP, …

Capa 2: Información

X M L

Page 10: Pruebas de Servicios Web, ¿Codificar o No Codificar?

SOAP (Simple Object Access Protocol) Se trata de un protocolo basado en XML, que permite la interacción entre varios dispositivos y que tiene la capacidad de transmitir información compleja. El mensaje SOAP está compuesto por un envelope (sobre), cuya estructura está formada por los siguientes elementos: header

(cabecera) y body (cuerpo). Los documentos deben seguir un formato estandarizado por el W3C.

1.4 SOAP

Page 11: Pruebas de Servicios Web, ¿Codificar o No Codificar?

REST (Representational State Transfer) es una arquitectura que generalmente se ejecuta a través de HTTP. Enfatiza las interacciones entre los clientes y los servicios, que se han mejorado por tener un número limitado de operaciones. REST es una alternativa de SOAP y en lugar de utilizar XML para la petición, REST utiliza URL sencilla en algunos casos. A diferencia de SOAP, REST utiliza aplicaciones de construcción en los encabezados HTTP para realizar meta-información.

1.5 REST

Page 12: Pruebas de Servicios Web, ¿Codificar o No Codificar?

WSDL (Web Services Description Language) es un lenguaje basado en XML que se utiliza para describir los servicios que ofrece un servicio web.

WSDL describe todas las operaciones que ofrece el servicio web en particular en el formato XML. También define cómo los servicios pueden ser llamados, es decir, qué valor de entrada tenemos que ofrecer y lo que será el formato de la respuesta que va a generar para cada tipo de servicio.

1.6 WSDL

Page 13: Pruebas de Servicios Web, ¿Codificar o No Codificar?

PRUEBAS DE SERVICIOS WEB

Page 14: Pruebas de Servicios Web, ¿Codificar o No Codificar?

Hay algunos desafíos iniciales al probar un servicio web, por ejemplo, el hecho de que no hay interfaz gráfica de usuario, y por lo tanto, se debe entender una respuesta que principalmente no ha sido creado para ser leído por los seres humanos.

2.1 Retos al Probar un Servicio Web

Page 15: Pruebas de Servicios Web, ¿Codificar o No Codificar?

1. Comprender el Archivo WSDL.

2. Determinar las operaciones que ofrece ese servicio web en particular

3. Determinar el formato de solicitud XML que necesitamos enviar.

4. Determinar el formato XML de respuesta.

5. Usar una herramienta o escribir código para enviar la solicitud y validar la respuesta.

2.2 ¿Cómo Probar un Servicio Web?

Page 16: Pruebas de Servicios Web, ¿Codificar o No Codificar?

2.3 Nuestra Primer Prueba de Servicios Web

http://www.webservicex.net/CurrencyConvertor.asmx?wsdl

Page 17: Pruebas de Servicios Web, ¿Codificar o No Codificar?

2.3 Nuestra Primer Prueba de Servicios Web

Método de servicio web que se usará para

obtener la conversión entre 2 divisas

Abreviaciones de divisas para diferentes ciudades que se usaran en la conversión

Page 18: Pruebas de Servicios Web, ¿Codificar o No Codificar?

2.3 Nuestra Primer Prueba de Servicios Web

Respuesta del servicio web que nos dará la tarifa de conversión

Detalles de llamados HTML Get y Post.

Podemos usar cualquiera para mandar nuestra solicitud con parámetros

Page 19: Pruebas de Servicios Web, ¿Codificar o No Codificar?

AXIS2 de Apache

Page 20: Pruebas de Servicios Web, ¿Codificar o No Codificar?

AXIS2 de Apache

Page 21: Pruebas de Servicios Web, ¿Codificar o No Codificar?

SOAPUI

Page 22: Pruebas de Servicios Web, ¿Codificar o No Codificar?

CONCLUSIONES

Page 23: Pruebas de Servicios Web, ¿Codificar o No Codificar?
Page 24: Pruebas de Servicios Web, ¿Codificar o No Codificar?