![]() |
Delphi 7 - RESTFul API
¡Hola estimados!
Actualmente utilizo Delphi 7 + BDE + Firebird 2.0 + QuickReport y se me ha presentado la necesidad de consumir un RESTFul API en formato JSON para evaluar un proveedor. No soy experto en este tipo de desarrollo. Tengo las siguientes inquietudes para saber cuál sería la decisión más adecuada. ¿Delphi 7 soporta RESTFul API y formato JSON? de ser así, ¿Qué proceso debo agotar para poder adecuarlo? o ¿Es más factible comprar la licencia de Delphi 13 edición Profesional, asumiendo que tiene lo necesario para consumir RESTFul API y manejar formato JSON? Saludos.- |
En principio puedes usar Indy y alguna biblioteca para uso de json.
También depende exactamente de qué "REST" vas a usar. Aunque desde luego que con las últimas versiones de Delphi lo vas a tener más fácil porque ya trae componentes para ello. |
Para la parte de la API yo utilizo siempre una variante de este DataModule.
Solo modifico las variables privadas i el WS_Inicializa para rellenarlas. Además de esto, si el contenido es XML a veces tengo que tocar código en la función ClearData(). Tienes que tener las Indi10 instaladas. Además de esto, para que funcione IdSSLOpenSSL debes tener junto al ejecutable la versión de las dll de openssl. openssl.exe ssleay32.dll libeay32.dll Estoy utilizando esto con Delphi 6 para conectar a Prestashop (contenido XML) Woocommerce (contenido JSON) DHL (contenido JSON) SEUR (contenido JSON) SMSPubli (contenido JSON) Varias APIs a medida (contenido xml, JSON, imágenes) Básicamente la utilizo así:
|
Para tratar JSON una buena opción es la librería uLkJSON.
Ejemplo:
|
Estupendos consejos y código :)
^\||/^\||/^\||/ |
Solo me quedaba mencionar que DMMain.Log(), DMMain.LogIni() y DMMain.LogFin() son procedimiento que guardan strings en un archivo.
Solo lo hacen si está establecida la directiva de compilación Debug
|
Ya tengo tarea! :)
Validaré cuál de las opciones sería la más conveniente y luego les cuento según nuestro caso. ¡Muchas gracias Casimiro y duilioisola por sus valiosas y pronta respuestas! |
Cita:
Hay varias entradas en el blog donde puedes ver cómo se usa. En concreto esta: https://neftali.clubdelphi.com/habla...weathermap-12/ Puedes ver cómo conectarte a un WebService utilizando Indy y cómo "parsear" los resultados utilizando la librería ulkJSON. El código está disponible y puedes echarle un vistazo. |
Gracias Neftali!
Estuve explorando el código del proyecto que indicas en Delphi 7. Voy a probar con Indy 9 y la libería ulkJSON. Empezaré realizando peticiones HTTP GET y creando contenido en formato JSON. Les dejaré saber cómo me fue. Saludos.- |
Hice la petición HTTP GET y lanzó la excepción:
Cita:
|
Tienes que usar Indy 10.
|
Hola!
Ya pude instalar Indy 10 y todo marcha bien. Comparto implementación HTTPS GET.
Aqui su consumo. En Form1 debe ser agregada la libreria uLkJSON y Unit1
El próximo ejercicio que haré será realizar una petición HTTPS POST. Saludos.- |
^\||/^\||/^\||/
|
¡Hola!
Todo funciona correctamente con la implementacion de HTTPS POST.
Así consumimos el procedure anterior desde un formulario. Memo1 contiene el JSON.
Seguimos evaluando proveedores. Nuevamente muchas gracias! Saludos.- |
| La franja horaria es GMT +2. Ahora son las 01:51:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi