RAD Studio 11 vio la introducción de TRESTRequestDataSetAdapter, un componente que puede leer datos de un TDataSet y convertirlos a JSON listos para enviarlos a una API RESTful remota. Antes de hablar más sobre cómo usarlo, quiero recapitular cómo funcionan REST URL/API.
API REST y VERBOS
Las API REST generalmente se crean para usar los diferentes verbos HTML (POST, GET, PUT, PATCH y DELETE) para definir el tipo de solicitud que se realiza a un punto final.
Como ejemplo, imaginemos que administra una lista de tareas en una base de datos que están completas o incompletas. Una URL de API base como “https://<myURL>/data/tasks/” podría proporcionar un punto final para llamar para trabajar con los datos de TASK, y luego se usan los diferentes verbos al llamar al punto final para definir el tipo de acción. sucediendo. (p. ej., obtener datos, insertar, actualizar o eliminar datos). Para que esto funcione, ciertos verbos requieren un valor de ID para identificar los datos con los que desea trabajar (por ejemplo, ¿qué registro actualizar/eliminar?), por lo que, en realidad, la URL para ciertas tareas también tomaría un valor de ID opcional, por ejemplo, “ /datos/tareas/{id}”
Para enviar los datos de regreso al servidor usando TRESTRequestDataSetAdapter, primero es importante hacer coincidir la operación (insertar, actualizar, eliminar) con el verbo correcto y luego usar TRESTRequest para ejecutar con los datos JSON formados correctamente, pero también para garantizar que endpoint tiene definido el punto final correcto.
Usando esta denominación estándar para URL (arriba), más TRESTRequestDataSetAdapter, es posible empaquetar el JSON con poco código para enviar datos de vuelta al servidor. El TRESTRequestDataSetAdapter conecta un TRESTRequest y un TDataSet. La propiedad Área define qué se está seleccionando (p. ej., Todo o Registro actual) y convierte el conjunto de datos en el contenido JSON que debe enviarse de vuelta al servidor.
Para hacer esto automáticamente, puede usar los eventos en el TDataSet, por ejemplo, AfterInsert, AfterPost y BeforeDelete, para recoger cambios en el conjunto de datos y luego hacer llamadas remotas para mantener el servidor sincronizado.
SIN EMBARGO…. ¿Qué pasa si tienes problemas de conexión?
Beneficiarse del desarrollo nativo para hacer que las aplicaciones REST tengan más funciones.
Una característica útil de FireDAC (y algunos otros conjuntos de datos como TClientDataSet) es la opción CachedUpdate. Con CachedUpdates, puede realizar un seguimiento de los cambios dentro de un conjunto de datos. Esto permite que los cambios se almacenen en caché, se guarden localmente y luego se retrasen en un momento posterior. (genial si hay conectividad limitada).
Es posible combinar estas excelentes características de las bibliotecas nativas junto con TRESTRequestDataSetAdapter para guardar los cambios en el servidor. Si bien esto puede agregar más complejidad, especialmente cuando tiene operaciones de inserción, actualización y eliminación combinadas en el mismo caché (ya que estos usan VERBOS diferentes para actualizar el servidor remoto), es posible filtrar un caché de datos para procesar cada tipo de actualización en doblar.
Para mostrarle cómo hacer esto, he creado un ejemplo que está disponible a través de GitHub . ¡Esto incluye una unidad REST.RESTUpdater con clases de ayuda para administrar el transporte y la publicación de datos en solo unas pocas líneas de código! – Obtenga más información sobre el ejemplo en esta publicación .
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition