144 rest web services

35
REST Web SERVICES Alejandro Panizza [email protected]

Upload: genexus

Post on 03-Jul-2015

2.988 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 144 Rest Web Services

REST Web SERVICESAlejandro Panizza

[email protected]

Page 2: 144 Rest Web Services

¿Qué es un webservice ?

Page 3: 144 Rest Web Services

Hace mucho tiempo...

HTTP, HTML, AJAX

Navegadores

Usuarios

Clientes Locales

WEB

Page 4: 144 Rest Web Services

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

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

REST

Page 7: 144 Rest Web Services

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

REST: Tecnología

Page 9: 144 Rest Web Services

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

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

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

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

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

Arquitectura REST

Page 15: 144 Rest Web Services

ROA: Orientado a Recurso

oDireccionable

oNo hay estado

o Interfaz Uniforme y Consistente

o Conectado

Page 16: 144 Rest Web Services

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

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

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

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

Ejemplos

Page 21: 144 Rest Web Services

Web APIs

Page 22: 144 Rest Web Services

Web APIs

Page 23: 144 Rest Web Services

GXBase API

Page 24: 144 Rest Web Services

GXBase API

Page 25: 144 Rest Web Services

GXBase API

Page 26: 144 Rest Web Services

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

REST en GeneXus(Consumo)(Consumo)

BC1.Load()

BC1.Save()

BC1.Delete()

DP1([Parm,...])

Page 28: 144 Rest Web Services

REST en GeneXus

Page 29: 144 Rest Web Services

REST en GeneXus

Page 30: 144 Rest Web Services

REST en GeneXus

Demo

Page 31: 144 Rest Web Services
Page 32: 144 Rest Web Services

En conclusión...

Page 33: 144 Rest Web Services

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

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

¡Muchas Gracias!