Skip to content

Conexión a una API Rest desde nu TThread

Una API REST (Representational State Transfer) es un conjunto de reglas que definen cómo se pueden intercambiar datos entre aplicaciones en la web.

En resumen, las API REST permiten que las aplicaciones se comuniquen entre sí para acceder y compartir datos de manera eficiente.

En general, las API REST utilizan el protocolo HTTP para enviar y recibir datos. Esto significa que puedes acceder a la API REST de una aplicación utilizando cualquier lenguaje de programación que admita solicitudes HTTP, como Delphi.

Creando un programa multihilo con conexión a API REST en Delphi

En Delphi, puedes crear un programa multihilo con conexión a una API REST utilizando la clase TThread.

A continuación, se muestra un ejemplo de cómo crear un programa multihilo que realiza una conexión a una API REST en uno de sus hilos.

unit Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.Net.URLClient,
  System.Net.HttpClient, System.Net.HttpClientComponent;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    NetHTTPClient1: TNetHTTPClient;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TAPIThread = class(TThread)
  private
    FHTTPClient: TNetHTTPClient;
  protected
    procedure Execute; override;
  public
    constructor Create(HTTPClient: TNetHTTPClient);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

constructor TAPIThread.Create(HTTPClient: TNetHTTPClient);
begin
  FHTTPClient := HTTPClient;
  inherited Create(False);
end;

procedure TAPIThread.Execute;
var
  ResponseContent: string;
begin
  ResponseContent := FHTTPClient.Get('https://jsonplaceholder.typicode.com/todos/1').ContentAsString;
  Sleep(5000); // Simulate some work
  Synchronize(
    procedure
    begin
      Form1.Memo1.Lines.Add(ResponseContent);
    end
  );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  APIThread: TAPIThread;
begin
  APIThread := TAPIThread.Create(NetHTTPClient1);
  Memo1.Lines.Add('Connecting to API...');
end;

end.

En este ejemplo, creamos un programa que tiene un botón y un TMemo. Al hacer clic en el botón, se crea un nuevo hilo utilizando la clase TAPIThread. Este hilo toma una instancia de TNetHTTPClient como parámetro de entrada y luego realiza una solicitud GET a una API REST en el método Execute.

En este ejemplo, utilizamos la API REST JSONPlaceholder que proporciona datos de prueba.

Para simular algún trabajo en el hilo, utilizamos la función Sleep para que el hilo se detenga por un breve período de tiempo antes de mostrar la respuesta en el TMemo.

Para mostrar la respuesta en el TMemo, utilizamos el método Synchronize para ejecutar el código en el hilo principal.

En este artículo, aprendiste cómo puedes crear un programa multihilo en Delphi que se conecta a una API REST en uno de sus hilos.

Para hacerlo, utilizamos la clase TThread para crear un nuevo hilo y la clase TNetHTTPClient para conectarnos a una API REST.

Es importante tener en cuenta que, cuando se trabaja con hilos y conexiones a red, es fundamental tener un buen manejo de excepciones y garantizar que todas las conexiones se cierren adecuadamente para evitar problemas de memoria y rendimiento.

Espero que este artículo te haya sido útil y te haya proporcionado una idea sobre cómo puedes crear un programa multihilo con conexión a API REST en Delphi.