FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Aplicacion Rest Como hacerla
Buenos dias Foristas. He iniciado a mirar como se hace una aplicacion que utilice rest server y rest cliente.
El ejemplo que encontre fue la que hace delphi con su plantilla de echo y cambiar de orden el valor de una cadena. Ejemplo interesante para observar como funciona. Pero en el mundo de apliaciones este ejemplo es poco util, ya que normalmente las aplicaciones reciben datos y retornan resultados de una base de datos. Quisiera sabe si alguien tiene la url de un ejemplo donde existe por ejemplo enviar datos al servidor , verificar si los recibió la informacion, o solicitar un clientdataset para desplegarlo en en el cliente. Este ejemplo serviria a todos para iniciar sus propios programas Agradezco la ayuda que puedan brindar al foro |
#2
|
||||
|
||||
Mira la web de neftali, creo que ahí encontrarás lo que buscas.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Hay bastante informacion en la documentacion y ejemplos
Este por ejemplo muestra como exponer un DataSet Aca discutimos otra forma de hacerlo Tambien podes usar frameworks de terceros como MARS o mORMot |
#4
|
||||
|
||||
Yo es que devuelvo siempre un TObjectList con los objetos previamente mapeados por medio de un ORM que yo mismo hice. En fin, toda una forma de programar este tipo de cosas.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#5
|
||||
|
||||
Una aplicación REST no es tan diferente de una app normal, solo que agrega una forma diferente de serializacion & esta distribuida.
Como se explica en la tesis de como hacer apps robustas de forma distribuida: (Del creador de ERLANG, un lenguaje donde las funciones locales se manejan tal como las remotas). http://erlang.org/download/armstrong_thesis_2003.pdf ----- Una app distribuida "simple" es casi lineal: Cita:
Osea que hacer:
En ambos casos es "casi lo mismo". SIN EMBARGO El *verdadero shock* está en que en una app monolítica tienes un manejo invisible del "estado" del programa, y mutas libremente el contenido de la memoria. Ese manejo de estado es lo que te da el runtime/lenguaje. Por ejemplo, al hacer la llamada a SUM no tienes que conocer la dirección en memoria, y aun toda una INVISIBLE cantidad de "variable globales" como el STACK y el HEAP que mantienen todo vivo. Una ficción que se rompe de cuando en cuando al manifestarse en forma de bugs. Esa ficcion no sirve en una app distribuida. Y como la mayoría de los lenguajes tienen un acceso global del programa, aun los programadores más cuidadosos tienen todo entrelazado por mas que intenten aislar o encapsular las cosas. Y cuando tratan de portar eso a una app distribuida se estrellan porque toda su intuición queda derrumbada, aunque juren que han sido programadores disciplinados. Además, mientras en un monolito solo hay un "cliente", en una app distribuida hay que asumir no solo una posibilidad infinita, sino que los clientes pueden ser maliciosos. Asi que tienes que: 1- Asumir que todo lo que llega al servidor puede venir de un cliente malicioso. Todo hay que validarlo. 2-Manejar de forma manual el estado, haciendo lo posible de no usarlo ("stateless"). 3-Buscar hacer funciones "puras", al estilo de lenguajes funcionales, que no accedan nada "global" ni generen "side-effects" 4-Reducir al mínimo la cantidad de datos en la comunicación 5-Asumir que los clientes/servidores morirán a mitad, al principio, al final, llegando, dandose la vuelta, en todo momento.
__________________
El malabarista. |
#6
|
|||
|
|||
Aplicacion Rest
Gracias a todos por sus respuestas.
VEo que falta mucho por aprender. Me gustaría recibir ampliaciones sobre el tema y que todos los floristas aprendamos sobre esta tecnología por ejemplo 1. cuando uno hace en delphi el servidor rest y el cliente es un programa hecho en otro lenguaje se hace de forma diferente 1.1 para exponer una función que existe en el servidor rest , que información debe proveer el servidor para que un cliente externo use la funcion ? |
#7
|
||||
|
||||
Cita:
1.1 Debes entregarle la documentación y ejemplos necesarios con el esquema JSON con el que se enfrentarán.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#8
|
||||
|
||||
Cita:
Cita:
Es popular por ejemplo, usar: http://swagger.io/ ---- La parte que reitero, ya que algunos piensas que REST es "usar json", es solamente la implementacion de los "VERBOS" http y de los URI. Se pueden pasar cualquier dato (incluyendo binarios) aunque es popular hoy usar Json, pero si hay razones para usar algo mas no hay que limitarse. Por ejemplo, en mi caso yo paso tambien bases de datos sqlite (todo el archivo) y asi me ahorro un monton de trabajo, aparte que puedo hacer consultas sql identicas entre cliente y servidor. Y usando la habilidad para abrir una BD sqlite dentro de otra, paso datos sin la sobrecarga de serializar/desearilizar, puedo usar transacciones y demas, Por ejemplo, en una app esto es parte de la sincronizacion (en Swift/ios junto a un servidor python): Código PHP:
Osea, REST puede ser un ideal, pero no hay que ignorar las posibilidades...
__________________
El malabarista. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TjsonObject como parámetro SERVICIO REST | igentile | Varios | 5 | 06-11-2015 15:17:06 |
Como consumir Rest Service que retorna cadena en formato JSON desde delphi 7 | JuanPa1 | Internet | 0 | 20-12-2013 19:07:20 |
Vista Actualizable... Como hacerla ? | Efren2006 | Firebird e Interbase | 5 | 20-07-2012 02:05:47 |
Como Utilizar La Funcion Desc Para Hacerla Parte De Un Query | JOTAAB | Oracle | 2 | 06-01-2006 19:41:25 |
Barra progreso con IdSMTP...Como hacerla?? | AFilth | Internet | 3 | 20-12-2005 01:59:49 |
|