Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   La Taberna (https://www.clubdelphi.com/foros/forumdisplay.php?f=40)
-   -   Rest (https://www.clubdelphi.com/foros/showthread.php?t=86373)

roman 28-07-2014 18:27:47

Rest
 
¿Alguien puede explicar en términos simples qué significa esto de REST? Por ejemplo, cuando alguien dice:

Cita:

usas llamadas REST y resuelves el problema en menos de 2 dias (lo que generalmente toma hacer un cliente REST)
¿qué quiere decir? Por más que trato de leer la entrada de wikipedia no entiendo.

// Saludos

egostar 28-07-2014 19:02:36

Cita:

Empezado por roman (Mensaje 479448)
¿Alguien puede explicar en términos simples qué significa esto de REST? Por ejemplo, cuando alguien dice:

¿qué quiere decir? Por más que trato de leer la entrada de wikipedia no entiendo.

// Saludos

Que tal roman, tal vez ésto te de una mejor idea que leer la descripción de REST.

Saludos

egostar 28-07-2014 19:06:04

Aunque pensandolo bien, no estás preguntando como se hace en Delphi, así que ese tal vez se resume en nada :)

Saludos

egostar 28-07-2014 19:11:56

Ahora, me asalta otra duda, ¿REST comparado con que?

Saludos

roman 28-07-2014 19:18:57

Cita:

Empezado por egostar (Mensaje 479453)
Aunque pensandolo bien, no estás preguntando como se hace en Delphi, así que ese tal vez se resume en nada :)

Saludos

Bueno, me servirá de ejemplo cuando entienda qué es REST :)

¿Comparado con qué? Pues no lo sé. Se lle mucho estos días de aplicaciones RESTful, clientes REST, etc. y no sé de qué va la cosa. ¿Es algún tipo de web service? ¿Es simplemente una API vía HTTP?

:confused:

// Saludos

egostar 28-07-2014 19:27:40

Cita:

Empezado por roman (Mensaje 479456)
Bueno, me servirá de ejemplo cuando entienda qué es REST :)

¿Comparado con qué? Pues no lo sé. Se lle mucho estos días de aplicaciones RESTful, clientes REST, etc. y no sé de qué va la cosa. ¿Es algún tipo de web service? ¿Es simplemente una API vía HTTP?

:confused:

// Saludos

Pues la comparación es con SOAP, así que es bajo el concepto de Servicios Web, a ver si te da algo de luz ésto.

http://searchsoa.techtarget.com/tip/...st-Web-service

Saludos

Al González 28-07-2014 21:21:06

Hola Román.

Yo estoy más o menos en las mismas que tú. Llevo algún tiempo escuchando sobre REST, sin tener bien claro de qué se trata, pero acabo de echar un vistazo a los dos enlaces que propone Eliseo, y me parece que son buenos materiales de estudio.

Del segundo de estos, me permito la siguiente transcripción:
Cita:

REST describe un conjunto de principios arquitectónicos por los cuales los datos pueden ser transmitidos sobre una interfaz estandarizada (tal como HTTP). REST no contiene una capa de mensajería adicional y se enfoca sobre reglas de diseño para crear servicios sin estado. Un cliente puede acceder al recurso empleando la URI única y una representación del recurso es devuelto. Con cada nueva representación de los recursos, se dice que el cliente transfiere estado. Al acceder a los recursos RESTful con el protocolo HTTP, la URL del recurso sirve como identificador, y GET, PUT, DELETE, POST y HEAD son las operaciones HTTP estándares aplicadas sobre ese recurso.
Cita:

REST describes a set of architectural principles by which data can be transmitted over a standardized interface (such as HTTP). REST does not contain an additional messaging layer and focuses on design rules for creating stateless services. A client can access the resource using the unique URI and a representation of the resource is returned. With each new resource representation, the client is said to transfer state. While accessing RESTful resources with HTTP protocol, the URL of the resource serves as the resource identifier and GET, PUT, DELETE, POST and HEAD are the standard HTTP operations to be performed on that resource.
Pero también me llamó mucho la atención el siguiente diálogo: http://blog.tordek.me/2008/03/como-l...t-a-mi-esposa/
Cita:

Estamos tirando a la basura décadas de cosas que de verdad se usan y técnicas demostradas, y empezando de nuevo con algo que se parece mucho a otros sistemas que fallaron en el pasado.
De todo lo anterior desprendo que REST es algo así como la forma de hacer que todos los recursos Web estén disponibles para cualquier sistema automatizado bajo una serie de normas estándares que son perfectamente aplicables mediante el protocolo HTTP, sin necesidad de recurrir a protocolos o "capas" adicionales (como sería el caso de SOAP).

Todavía tengo un montón de dudas y hasta puede que haya dicho alguna idiotez, pero bueno, veré si puedo seguirle la pista a este interesante tema.

Un saludo a todos. :)

mamcx 28-07-2014 22:37:23

REST es simple y llanamente HTTP tal y como fue diseñado en sus origenes. Asi que un browser usa REST. No es mas vuelta que esto. Asi que en vez de ser una forma mas complicada de hacer los mismo, es regresar a las bases del protocolo.

Se popularizo, al igual que JSON, como una respuesta a lo pesado y sobre-diseñado de los SOAPS/XMLs.

De todo el ruido que le generan a esto, uno de los conceptos claves es saber usar el verbo apropiado, ej: No se hace un borrado con un GET. No se hace una adicion con POST. No se pide el estado de un recurso/url con un PUT. Esto se explica en el manejo de la idempotencia en este articulo.

El manejo del protocolo tradicionalmente ha sido "chapuzero" porque cuando la gente hacia Asp.NET/PHP/etc IGNORABA que existian otros verbos aparte de GET/POST y los usaban de forma incorrecta, es por eso que todo esto parece nuevo.

Debido a que es muy, muy simple, carece de "overhead" de otros intentos de estandarizar un RPC, es una forma popular de hacer RPC entre aplicaciones aun cuando no sean html-servidor web. Osea, en vez de hacer COM+, se hace REST porque es mas simple y universal. Es cierto que muchos usan REST en vez de otros metodos de RPC mas apropiados para sus casos de uso en particular, porque es mas simple, y realmente, cuanta gente sabe que es 0mq y familia?

roman 29-07-2014 17:44:55

Gracias Mario, esto aclara un poco las cosas. Pero, según entiendo, la idea con REST es usar todos los verbos HTTP de mnera correcta y no sólo POST y GET. Sin embargo, creo recordar que ni todos los navegadores ni todos los servidores soportan todos esos métodos ¿no?

// Saludos

mamcx 29-07-2014 18:11:58

As eso va que El manejo del protocolo tradicionalmente ha sido "chapuzero". Ahora bien, eso no impide que puedas implementar REST correctamente en tus apps, y como lo manejen los browser (mas antiguos) solo es un problema si te metes con ellos.

Como todo ideal, no siempre se alcanza al 100%. Por eso se ve que muchos claman que soportan REST, y lo usan tal y cual, chapuzeramente ;)

roman 29-07-2014 18:18:41

Pero, ¿los navegadores actules sí manejan todos los verbos? ¿Apache maneja todos? Y, supongo que también el el lenguaje de scripts debe hacerlo, porque PHP, por ejemplo, me parece que sólo maneja POST y GET, al menos son los que pone al alcance inmediato.

// Saludos

poliburro 30-07-2014 16:52:00

Cita:

Empezado por roman (Mensaje 479489)
Pero, ¿los navegadores actules sí manejan todos los verbos? ¿Apache maneja todos? Y, supongo que también el el lenguaje de scripts debe hacerlo, porque PHP, por ejemplo, me parece que sólo maneja POST y GET, al menos son los que pone al alcance inmediato.

// Saludos

Tal como dijo mamcx, REST puede pensarse como http y sí, tanto php como apache soportan todos los verbos u operaciones CRUD. Hace tiempo dí un curso de rest con php y apache para conectarse a postgresql y pensaba subirlo a mi blog pero el trabajo es extenso y sinceramente no he tenido tiempo.

Saludos.


La franja horaria es GMT +2. Ahora son las 11:09:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi