Ver Mensaje Individual
  #2  
Antiguo Hace 1 Semana
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Reputación: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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.
Responder Con Cita