144 Rest Web Services

Post on 03-Jul-2015

2.986 views 3 download

Transcript of 144 Rest Web Services

REST Web SERVICESAlejandro Panizza

apanizza@artech.com.uy

¿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!