144 Rest Web Services
-
Upload
genexus -
Category
Technology
-
view
2.986 -
download
3
Transcript of 144 Rest Web Services
¿Qué es un webservice ?
Hace mucho tiempo...
HTTP, HTML, AJAX
Navegadores
Usuarios
Clientes Locales
WEB
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
Web Programable
HTTP, HTML, AJAX
Navegadores
Usuarios
HTTP, REST, SOAP
Clientes Locales
SERVICIOS WWW
Composición deServicios( Mashups)
WEB
REST
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
REST: Tecnología
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
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>
o HTML Headers:o Cache-Control
o Expire
o Authentication
o Conditional GET: Last-Modified If-Modified-Since
HTTP/1.1 304 Not Modified
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
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)
Arquitectura REST
ROA: Orientado a Recurso
oDireccionable
oNo hay estado
o Interfaz Uniforme y Consistente
o Conectado
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 !
ROA
o REST Web services como la API para consultas
o Se complementa con una API para notificacioneso WebHooks
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
ROA
rororororororo
Seguridad: HTTPS
Identidad: HTTP Authentication + OAuth / OpenId
Manejo de concurrencia: Status Headers (ETag)
Modelado de flujos como cambios en Recursos
Ejemplos
Web APIs
Web APIs
GXBase API
GXBase API
GXBase API
REST en GeneXus
o Recursos mapean a Business Components y Data Providers
o Representación JSON y XML
o Siguiendo REST Pragmático
REST en GeneXus(Consumo)(Consumo)
BC1.Load()
BC1.Save()
BC1.Delete()
DP1([Parm,...])
REST en GeneXus
REST en GeneXus
REST en GeneXus
Demo
En conclusión...
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
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
¡Muchas Gracias!