144 rest web services
TRANSCRIPT
![Page 2: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/2.jpg)
¿Qué es un webservice ?
![Page 3: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/3.jpg)
Hace mucho tiempo...
HTTP, HTML, AJAX
Navegadores
Usuarios
Clientes Locales
WEB
![Page 4: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/4.jpg)
Web Programable
Reutilización de Algoritmos : Uso de bibliotecas de funciones comunes
Reutilización de Datos : fuentes de datos externos como parte de la aplicación
![Page 5: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/5.jpg)
Web Programable
HTTP, HTML, AJAX
Navegadores
Usuarios
HTTP, REST, SOAP
Clientes Locales
SERVICIOS WWW
Composición deServicios( Mashups)
WEB
![Page 6: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/6.jpg)
REST
![Page 7: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/7.jpg)
REST: Definición
o REST => REpresentational State Transfer
o Servicios usando los principios y tecnologías del HTTP
o Roy Fielding http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm ( Fielding 2000)
o Forma de diseño + Tecnologías
![Page 8: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/8.jpg)
REST: Tecnología
![Page 9: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/9.jpg)
o Recursos: o Clientes, Documentos, Empresas, Artículos, etc...
o URL para cada uno: o http://example.com/empresas/artech o http://example.com/articulos/0354/o http://example.com/autores/spinker/libros/
REST: Tecnología
![Page 10: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/10.jpg)
o HTTP para CRUD:o Verbos : POST, GET, PUT, DELETE (CRUD)
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>
![Page 11: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/11.jpg)
o HTML Headers:o Cache-Control
o Expire
o Authentication
o Conditional GET: Last-Modified If-Modified-Since
HTTP/1.1 304 Not Modified
![Page 12: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/12.jpg)
o HTTP para CRUD:
o Verbos : POST, GET, PUT, DELETE (CRUD)
GET Obtener Recurso Seguro, Cached, Cond.
POST Crear Recursos No Seguro
PUTModificar Recursos Existentes
Idempotente
DELETE Eliminar Recursos Idempotente
![Page 13: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/13.jpg)
REST
o Basado en Recursos
o Cada recurso se identifica con una URL
o Usa los verbos del HTTP para CRUD
o Los Recursos tienen diferentes representaciones: XML, JSON, etc
o Estan interconectados (Links)
![Page 14: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/14.jpg)
Arquitectura REST
![Page 15: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/15.jpg)
ROA: Orientado a Recurso
oDireccionable
oNo hay estado
o Interfaz Uniforme y Consistente
o Conectado
![Page 16: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/16.jpg)
ROA
rororororororo
¿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 !
![Page 17: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/17.jpg)
ROA
o REST Web services como la API para consultas
o Se complementa con una API para notificacioneso WebHooks
![Page 18: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/18.jpg)
ROA
rororororororo
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
![Page 19: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/19.jpg)
ROA
rororororororo
Seguridad: HTTPS
Identidad: HTTP Authentication + OAuth / OpenId
Manejo de concurrencia: Status Headers (ETag)
Modelado de flujos como cambios en Recursos
![Page 20: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/20.jpg)
Ejemplos
![Page 21: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/21.jpg)
Web APIs
![Page 22: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/22.jpg)
Web APIs
![Page 23: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/23.jpg)
GXBase API
![Page 24: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/24.jpg)
GXBase API
![Page 25: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/25.jpg)
GXBase API
![Page 26: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/26.jpg)
REST en GeneXus
o Recursos mapean a Business Components y Data Providers
o Representación JSON y XML
o Siguiendo REST Pragmático
![Page 27: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/27.jpg)
REST en GeneXus(Consumo)(Consumo)
BC1.Load()
BC1.Save()
BC1.Delete()
DP1([Parm,...])
![Page 28: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/28.jpg)
REST en GeneXus
![Page 29: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/29.jpg)
REST en GeneXus
![Page 30: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/30.jpg)
REST en GeneXus
Demo
![Page 31: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/31.jpg)
![Page 32: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/32.jpg)
En conclusión...
![Page 33: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/33.jpg)
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
![Page 34: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/34.jpg)
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
![Page 35: 144 Rest Web Services](https://reader033.vdocuments.site/reader033/viewer/2022052400/55961b9f1a28ab94018b4598/html5/thumbnails/35.jpg)
¡Muchas Gracias!