Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   RestApi delphi 2005 (https://www.clubdelphi.com/foros/showthread.php?t=98034)

victor03 25-05-2026 09:38:37

RestApi delphi 2005
 
Hola

Tenemos una web donde se conectan varias empresas para consultar y administrar cierta información.
La cosa es que nos han empezado a pedir aplicaciones de escritorio para poder gestionar esa información y el problema es que no se muy bien como hacer que delphi 2005 trabaje con una Api.

Esto ya lo intente con la APi de un tercero usando indy (que ya tenia instalado en delphi no se si es nativo) y no termine de hacer que funcionase, sobre todo la parte del Post

Agradecería cualquier ayuda o consejo


Un saludo

Casimiro Noteví 25-05-2026 17:22:59

No te compliques demasiado: Delphi 2005 sí puede trabajar con APIs REST, aunque sea antiguo.
La clave es entender que una API normalmente es simplemente:
  • hacer peticiones HTTP (GET, POST, PUT, DELETE…)
  • enviar/recibir JSON
  • gestionar autenticación (tokens, API keys, JWT, etc.)
Indy sirve perfectamente para eso y en Delphi 2005 será de lo más habitual.
Por ejemplo:
  • TIdHTTP → para hacer las peticiones
  • TStringStream → para enviar JSON en POST
  • alguna librería JSON compatible con D2005 → para parsear respuestas
El problema normalmente no es el GET, sino el POST:
  • headers incorrectos
  • Content-Type
  • codificación UTF-8
  • SSL/TLS moderno
  • formato JSON mal enviado
Ejemplo muy básico de POST con Indy:
Código Delphi [-]
uses IdHTTP, Classes;

var Http: TIdHTTP; 
Datos: TStringStream; 
Respuesta: string; 
begin 
  Http := TIdHTTP.Create(nil); 
  Datos := TStringStream.Create('{"usuario":"test"}'); 
  try 
    Http.Request.ContentType := 'application/json'; 
    Respuesta := Http.Post( 'https://api.midominio.com/login', Datos ); 
    ShowMessage(Respuesta); 
  finally 
    Datos.Free; 
    Http.Free; 
  end; 
end;
Luego ya vienen las complicaciones reales:
  • HTTPS moderno (TLS 1.2)
  • tokens Bearer
  • certificados
  • OAuth
  • compresión gzip
  • parseo JSON
Ahí es donde Delphi 2005 empieza a sufrir por antiguo.
Si vais a hacer muchas aplicaciones de escritorio conectadas a vuestra web, quizá os compense:
  • usar una API REST bien definida
  • migrar a una versión más moderna de Delphi
  • o usar una librería REST ya preparada
Porque hoy en día casi todo funciona con JSON + HTTPS + JWT y Delphi 2005 no nació pensando en eso.
Mi consejo:
  1. primero consigue hacer un GET simple a una API pública
  2. luego un POST simple
  3. después añade autenticación
  4. y finalmente integra vuestra API real
Y para probar la API antes de programar:
  • Postman
  • Insomnia
  • Bruno
  • curl
Eso ayuda muchísimo para saber si el problema es Delphi o la API.


La franja horaria es GMT +2. Ahora son las 06:31:38.

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