Advertisement
Advertisement

More Related Content

Advertisement

Integración de Tecnologías y Plataformas.pptx

  1. INTEGRACIÓN DE TECNOLOGÍAS Y PLATAFORMAS 4 AÑO DOCENTE: ING. LUIS OCTAVIO TENORIO UNIVERSIDAD CENTRAL DE NICARAGUA (UCN)
  2. EXPERIENCIA Y CONOCIMIENTO PROFESIONAL • Líder de Unidad de Sistemas Tributario en la DGI desde-2020 • Desarrollador de sitios y sistemas web desde el 2012 • Especialista en análisis de datos con Power Bi y Minería de Datos • Master en Informática Empresarial desde el 2017 Ing. Luis Octavio Tenorio
  3. CONTENIDO CLASE API REST. • Consumo de servicios web con REST • Depurando REST • Ejemplos de consumo y publicación de servicios web con REST
  4. OBJETIVOS DE LA CLASE • Definir bloques de códigos con el estándar REST para la comunicación. • Analizar escenarios en el cual sean necesarios la implementación de los Web Services. "
  5. Ejercicio de servicios web con NuSOAP SOAP - PHP
  6. • Descargar librería NuSOAP • https://github.com/f00b4r/nusoap • Crear directorio • /ws • Crear archivos • servicio.php • servicio2.php • Descomprimir la librería nusoap dentro de la carpeta “ws” • /nusoap-master
  7. servicio.php (1/3)
  8. servicio.php (2/3)
  9. servicio.php (3/3)
  10. http://localhost/ws/ http://localhost/ws/servicio.php
  11. http://localhost/ws/servicio.php?wsdl
  12. Si el código esta correcto se cargaran los métodos Consumimos el servicio con el SOAP UI
  13. http://localhost/ws/servicio.php?wsdl
  14. servicio2.php (1/3)
  15. servicio2.php (2/3)
  16. servicio2.php (3/3)
  17. Crear archivo TXT • datos.txt • Crear registro para validar servicio
  18. http://localhost/ws/servicio2.php?wsdl Consumimos el servicio con el SOAP UI
  19. API REST
  20. ¿QUÉ ES UNAAPI? Aplication Programming Interface (Interfaz de programación de Aplicaciones) Servidor BD Ruby API Cliente Servidor
  21. ¿QUÉ ES UNAAPI? Aplication Programming Interface Es un conjunto de servicios y funciones que nos permiten comunicarnos con otras aplicaciones.
  22. Cliente
  23. ¿REST, SOAP, WSDL, UDDI? Para disponer de una verdadera plataforma de servicios web se requieren una serie de capas que permitan: La invocación remota de los servicios. La localización de servicios. La descripción de la naturaleza de un servicio. Más cosas... (transacciones, autenticación, etc.) Para proporcionar estas funcionalidades se están desarrollando varias tecnologías diferentes: Invocación remota: REST, SOAP o XML-RPC. Descripción de servicios: WSDL. Localización de servicios: UDDI. Estos tres días vais a “jugar” con REST, SOAP y WSDL usando PHP.
  24. REST REpresentational State Transfer (Transferencia de Representación de Estado) Es un tipo de arquitectura de desarrollo web que se apoya totalmente en el estándar HTTP basado en recursos.
  25. REST en pocas palabras Representational State Transfer (“Architectural Styles and the Design of Network-based Software Architectures”, Roy Fielding) No es una tecnología sino un “estilo arquitectónico” software Se basa en una serie de principios y suele describir cualquier API que emplea XML (o texto plano) para el intercambio de datos sobre HTTP sin ningún tipo de capa de mensajería. En general la mayor parte APIs autoproclamadas “REST” no se adhieren a los principios del estilo y, así, se suele aplicar el término a cualquier sistema de invocación de procedimientos remotos vía HTTP mediante GET y POST.
  26. PRINCIPIOS REST •Cliente /Servidor •Sin estado •Puede ser “Cacheable” •Basado en Recursos
  27. RECURSOS URL = HTTP, Nombre del Host, URI http://www.mistareas.com/tareas Identificador del Recurso
  28. 90% De las nuevas API están basadas en REST
  29. Cliente Servidor API Recursos Servidor Tareas Request Response JSON, XML Cliente
  30. TIPOS DE RESPUESTAS JSON XML
  31. GET REST UTILIZAVERBOS HTTP Ver Recursos
  32. POST REST UTILIZAVERBOS HTTP Crear Recursos
  33. REST UTILIZAVERBOS HTTP •PUT/PATCH •Actualizar Recursos
  34. REST UTILIZAVERBOS HTTP •DELETE •Eliminar Recursos
  35. RECURSOS Y VERBOS HTTP URI HTTP Acción /Tareas GET Ver Todos /Tareas POST Crear /Tareas/1 GET Ver uno /Tareas/1 PUT/PATCH Actualizar /Tareas/1 DELETE Borrar
  36. ORDEN LÓGICO GET /PERSONAS/1/MASCOTAS Obtener las mascotas de la persona con el id 1 GET /personas/1/mascotas/1 = ítem Obtener la mascota con id 1 de la persona con id 1
  37. ESTADOS HTTP (1XX) INFO (2XX) SUCCESS (3XX) REDIRECTION (4XX) CLIENT ERROR (5XX) SERVER ERROR
  38. Introducción - ¿Qué es REST? ¿Qué es REST (REpresentational State Transfer)? NO es una especificación, ni un estándar, es un “estilo” de arquitectura, que define una serie de principios para el diseño de arquitecturas en red, tales, como la Web. NO es un estándar, pero está basado en estándares: • HTTP • URL • Representación de Recursos: XML / HTML / GIF / JPEG • Tipos MIME: text/xml, text/html, application/pdf Consumo Servicios Web REST
  39. Principios REST (1) Recursos Uniformemente Accesibles (URI Única): Consultar listado de todos los clientes: http://smartflex/ccgac/customers Consultar listado de clientes por nombre “andres” y apellido “lopez”: http://smartflex/ccgac/customers?name=andres&lastname=lopez Consultar detalle del cliente “123”: http://smartflex/ccgac/customer/123 Consultar listado de clientes por apellido “carlos”: http://smartflex/ccgac/customers?opcion=listado&name=carlos Consultar detalle del cliente “123”: http://smartflex/ccgac/customers?opcion=detalle&id=123 Consumo Servicios Web REST Introducción - ¿Qué es REST?
  40. Consultar cliente “13”: GET http://smartflex/ccgac/customer/13 Registrar cliente “13”: PUT http://smartflex/ccgac/customer/13 Principios REST (2) Recursos Accedidos y Actualizados por Operaciones PUT, GET, POST y DELETE (CRUD): Consultar cliente “13”: POST http://smartflex/ccgac/getCustomer?id=13 Eliminar cliente “13”: POST http://smartflex/ccgac/delCustomer?id=13 Consumo Servicios Web REST Introducción - ¿Qué es REST? Actualizar cliente “13”: POST http://smartflex/ccgac/customer/13 Eliminar cliente “13”: DELETE http://smartflex/ccgac/customer/13
  41. Principios REST (3) Uso Metadatos Descripción y Representación Recursos: • Descripción: TITLE / DESCRIPTION / SUBJECT / CREATOR • Representación: XML / HTML / GIF / JPEG / PDF (Tipos MIME) • Formato: Language / Encoding / Charset Consumo Servicios Web REST Introducción - ¿Qué es REST?
  42. ¿Qué es RESTful? Introducción - ¿Qué es RESTful? Consumo Servicios Web REST
  43. Introducción - Dominios de Aplicación REST Consumo Servicios Web REST Dominios de Aplicación REST e-Commerce • eBay (Hasta 2008) • Amazon Product Advertising • Yahoo Shopping • Groupon Social Networking • Twitter • Facebook • LinkedIn • Instagram Sistemas de Información Geográfica • ArcGIS • OpenStreetMap
  44. 5% 58% 29% 5% 2006 JavaScrip t REST 5% 72% 21% 2% 2014 Consumo Servicios Web REST Introducción - REST vs SOAP REST vs SOAP
  45. Ítem REST SOAP Definición Estilo de Arquitectura Arquitectura Orientado a Recursos (ROA) Protocolo Arquitectura Orientado a Servicios (SOA) Dominio de Aplicación Aplicaciones Internet dirigidas a clientes desconocidos. Aplicaciones empresariales dirigidas a integración de sistemas heterogéneos, código legado, etc. Definición de Interface Ningún estándar. Iniciativas: WADL (2006) y WSDL 2.0 (2007) WSDL (2001) Generación clientes Stubs para su depuración. Transferencia de Datos HTTP SOAP sobre HTTP / FTP / SMTS Formato de Datos Soporta diferentes formatos (XML, JSON, YAML, etc.). Solamente soporta formato XML. Requiere XML “Wrapper” Escalabilidad Mayor escalabilidad. Menor escalabilidad. Interoperabilidad Solamente HTTP Muchos estándares y proveedores. Cache En solicitudes GET, permite a los Proxys realizar cache más fácilmente. Utiliza solicitudes POST, dificultando el cache de las respuestas. Complejidad HTTP nativo en todos los lenguajes. Construcción simple de solicitud HTTP. Requiere librerías cliente. Generación clientes stubs/proxies. Introducción - REST vs SOAP REST vs SOAP Consumo Servicios Web REST
  46. Internet Propuesta Consumo de Servicios Web Cliente Servidor Solicitud Respuesta Servicios Web SOAP Procesos (Servicios PL/SQL) Protocolo W3C SOAP Estilo de Arquitectura REST Especificación W3C JavaScript Protocolo UserLand XML-RPC Estilos y Protocolos Consumo Servicios Web REST
  47. Referenciar Servicio Web REST Propuesta URL WS-REST Datos Autenticación Proxy Servicio PL/SQL Consumir Servicio Web REST Consumo Servicios Web REST
  48. Servicio PL/SQL [ Paquete PL/SQL] . Invoke ( path1 , … , pathN , arg1 , … , argN ) URL WS-REST http [ s ]: // host [ : port ] [ / {path1} / … / {pathN} ] [ ? {arg1} & … & {argN} ] Propuesta Referenciar Servicio Web REST Paquete PL/SQL Consulta de clientes por nombre y apellido: http://smartflex/ccgac/customers?{name}&{lastName} WS_GetCustomers.Invoke ( isbName, isbLastName ) Consulta de ventas Año – Mes – Día: http://smartflex/ccgac/sales/{YYYY}/{MM}/{DD} WS_GetSales.Invoke ( isbYYYY, isbMM, isbDD ) Consumo Servicios Web REST
  49. Enlaces de Interes Architectural Styles and the Design of Network-based Software Architectures http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm Web Application Description Language (WADL) http://www.w3.org/Submission/wadl/ Multipurpose Internet Mail Extensions (MIME) http://www.w3.org/Protocols/rfc1341/0_Abstract.html Apigee: API Console https://apigee.com/console Referencias Consumo Servicios Web REST
  50. BIBLIOGRAFÍA • Creación de páginas web: HTML 5, Celaya Luna, Ainoa -ICB, 2014(Tomado de E-libros, de la biblioteca virtual de UCN). • Recio García, J. A. (2016). HTML5, CSS3 y JQuery: curso práctico. Paracuellos de Jarama, Madrid, RA-MA Editorial (Tomado de E-libros, de la biblioteca virtual de UCN).
  51. Gracias Nos vemos el próximo sesión de clase
Advertisement