Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

144 Rest Web Services

4,447 views

Published on

Published in: Technology, Business
  • Be the first to comment

144 Rest Web Services

  1. 1. REST Web SERVICES <ul><li>Alejandro Panizza </li></ul><ul><li>[email_address] </li></ul>
  2. 2. ¿Qué es un webservice ?
  3. 3. Hace mucho tiempo... HTTP, HTML, AJAX Navegadores Usuarios Clientes Locales WEB
  4. 4. Web Programable <ul><li>Reutilización de Algoritmos : Uso de bibliotecas de funciones comunes </li></ul><ul><li>Reutilización de Datos : fuentes de datos externos como parte de la aplicación </li></ul>
  5. 5. Web Programable HTTP, HTML, AJAX Navegadores Usuarios HTTP, REST, SOAP Clientes Locales SERVICIOS WWW Composición de Servicios ( Mashups) WEB
  6. 6. REST
  7. 7. REST: Definición <ul><li>REST => REpresentational State Transfer </li></ul><ul><li>Servicios usando los principios y tecnologías del HTTP </li></ul><ul><li>Roy Fielding http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm ( Fielding 2000) </li></ul><ul><li>Forma de diseño + Tecnologías </li></ul>
  8. 8. REST: Tecnología
  9. 9. <ul><li>Recursos: </li></ul><ul><ul><li>Clientes, Documentos, Empresas, Artículos, etc... </li></ul></ul><ul><li>URL para cada uno: </li></ul><ul><ul><li>http://example.com/empresas/artech </li></ul></ul><ul><ul><li>http://example.com/articulos/0354/ </li></ul></ul><ul><ul><li>http://example.com/autores/spinker/libros/ </li></ul></ul>REST: Tecnología
  10. 10. <ul><li>HTTP para CRUD: </li></ul><ul><ul><li>Verbos : POST, GET, PUT, DELETE (CRUD) </li></ul></ul>HTTP GET http://example.com/libros/84-8403-489-5 Response: <Libro> <Titulo>Historia de Roma</Titulo> <Autor uri=‘autores/fbert/’>Francisco Bertolini</Autor> <Precio>250</Precio> <Stock>2400</Stock> <Editorial uri=‘editoriales/edimat/’>Edimat</Editorial> </Libro>
  11. 11. <ul><li>HTML Headers: </li></ul><ul><ul><li>Cache-Control </li></ul></ul><ul><ul><li>Expire </li></ul></ul><ul><ul><li>Authentication </li></ul></ul><ul><ul><li>Conditional GET: Last-Modified </li></ul></ul>If-Modified-Since HTTP/1.1 304 Not Modified
  12. 12. <ul><li>HTTP para CRUD: </li></ul><ul><ul><li>Verbos : POST, GET, PUT, DELETE (CRUD) </li></ul></ul>GET Obtener Recurso Seguro, Cached, Cond. POST Crear Recursos No Seguro PUT Modificar Recursos Existentes Idempotente DELETE Eliminar Recursos Idempotente
  13. 13. REST <ul><li>Basado en Recursos </li></ul><ul><li>Cada recurso se identifica con una URL </li></ul><ul><li>Usa los verbos del HTTP para CRUD </li></ul><ul><li>Los Recursos tienen diferentes representaciones: XML, JSON, etc </li></ul><ul><li>Estan interconectados (Links) </li></ul>
  14. 14. Arquitectura REST
  15. 15. ROA: Orientado a Recurso <ul><li>Direccionable </li></ul><ul><li>No hay estado </li></ul><ul><li>Interfaz Uniforme y Consistente </li></ul><ul><li>Conectado </li></ul>
  16. 16. ROA ro ro ro ro ro ro ro ¿Cómo modelamos Recursos ? Entidades del sistema que pueden ser manipuladas Tenemos que pensar el comportamiento de los recursos mas allá del CRUD: CRUD es la interfaz no la Implementación ¿ GeneXus ? ¡ Transacciones !
  17. 17. ROA <ul><li>REST Web services como la API para consultas </li></ul><ul><li>Se complementa con una API para notificaciones </li></ul><ul><ul><li>WebHooks </li></ul></ul>
  18. 18. ROA ro ro ro ro ro ro ro REST es diseño para consumo en contraposición al diseño para integración Es el B2C de los servicios La plataforma ES el Web
  19. 19. ROA ro ro ro ro ro ro ro Seguridad: HTTPS Identidad: HTTP Authentication + OAuth / OpenId Manejo de concurrencia: Status Headers (ETag) Modelado de flujos como cambios en Recursos
  20. 20. Ejemplos
  21. 21. Web APIs
  22. 22. Web APIs
  23. 23. GXBase API
  24. 24. GXBase API
  25. 25. GXBase API
  26. 26. REST en GeneXus <ul><li>Recursos mapean a Business Components y Data Providers </li></ul><ul><li>Representación JSON y XML </li></ul><ul><li>Siguiendo REST Pragmático </li></ul>
  27. 27. REST en GeneXus (Consumo) (Consumo) BC1.Load() BC1.Save() BC1.Delete() DP1([Parm,...])
  28. 28. REST en GeneXus
  29. 29. REST en GeneXus
  30. 30. REST en GeneXus Demo
  31. 32. En conclusión...
  32. 33. WS* y la arquitectura REST ROA: “RESTful” web services. HTTP (XML, JSON, ...) Orientado a Recursos WS-* Stack: RPC-Style WEB SERVICES XML/XSD/SOAP Orientado a procesos
  33. 34. Resumiendo REST como opción de publicación API basada en recursos La lógica de negocios es parte del recurso ( reglas de negocio) Composición de servicios potencia mi solución
  34. 35. ¡Muchas Gracias!

×