Вы находитесь на странице: 1из 35

REST Web SERVICES

Alejandro Panizza apanizza@artech.com.uy

Qu es un webservice ?

Hace mucho tiempo...

Clientes Locales

Usuarios

WEB

Navegadores

Web Programable
Reutilizacin de Algoritmos : Uso de bibliotecas de funciones comunes
Reutilizacin de Datos : fuentes de datos externos como parte de la aplicacin

Web Programable
Composicin de Servicios ( Mashups) Clientes Locales

SERVICIOS WWW Usuarios WEB

Navegadores

REST

REST: Definicin
o

REST => REpresentational State Transfer

Servicios usando los principios y tecnologas del HTTP


Roy Fielding
http://www.ics.uci.edu/~fielding/pubs/dissert ation/top.htm ( Fielding 2000)

Forma de diseo + Tecnologas

REST: Tecnologa

REST: Tecnologa
o

Recursos:
o

Clientes, Documentos, Empresas, Artculos, etc...

URL para cada uno:


http://example.com/empresas/artech o http://example.com/articulos/0354/ o http://example.com/autores/spinker/libros/
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>

HTML Headers:
o
o o o

Cache-Control
Expire Authentication Conditional GET: Last-Modified If-Modified-Since HTTP/1.1 304 Not Modified

HTTP para CRUD:


o

Verbos : POST, GET, PUT, DELETE (CRUD)

GET POST PUT DELETE

Obtener Recurso Crear Recursos Modificar Recursos Existentes Eliminar Recursos

Seguro, Cached, Cond. No Seguro Idempotente Idempotente

REST
o o o o

Basado en Recursos Cada recurso se identifica con una URL Usa los verbos del HTTP para CRUD Los Recursos tienen diferentes representaciones: XML, JSON, etc Estan interconectados (Links)

Arquitectura REST

ROA: Orientado a Recurso


o Direccionable o No
o

hay estado

Interfaz Uniforme y Consistente Conectado

ROA
Cmo modelamos Recursos ? Entidades del sistema que pueden ser manipuladas Tenemos que pensar el comportamiento de los ro recursos mas all del CRUD: CRUD es la interfaz no la Implementacin GeneXus ? Transacciones !

ROA
REST Web services como la API para consultas o Se complementa con una API para notificaciones
o
o

WebHooks

ROA
REST es diseo para consumo en contraposicin al diseo para integracin Es el B2C de los servicios

ro

La plataforma ES el Web

ROA
Seguridad: HTTPS Identidad: HTTP Authentication + OAuth / OpenId Manejo de concurrencia: Status Headers (ETag)

ro 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


Representacin JSON y XML Siguiendo REST Pragmtico

o o

REST en GeneXus (Consumo)


BC1.Load()

BC1.Save()
BC1.Delete()

DP1([Parm,...])

REST en GeneXus

REST en GeneXus

REST en GeneXus

Demo

En conclusin...

WS* y la arquitectura REST


WS-* Stack: RPCStyle WEB SERVICES
XML/XSD/SOAP Orientado a procesos ROA: RESTful web services.

HTTP (XML, JSON, ...)


Orientado a Recursos

Resumiendo
REST como opcin de publicacin API basada en recursos La lgica de negocios es parte del recurso ( reglas de negocio)

Composicin de servicios potencia mi solucin

Muchas Gracias!

Вам также может понравиться