la più semplice credo sia fcl-web che trovi inclusa sia in Lazarus che FP.
eccoti un esempio di come faccio il login ad un servizio REST che restituisce il token, però trovi parecchi esempi nel forum ufficiale e nel wiki
ciao
procedure TfrmMain.Login;
var
HTTPClient: TFPHTTPClient;
AURL, sRisp: string;
jData: TJSONData ;
jItem: TJSONData ;
begin
AURL := 'https://pagina_login' ;
cToken := '' ;
try
HTTPClient := TFPHTTPClient.Create(nil);
HTTPClient.AllowRedirect := True;
HTTPClient.AddHeader('Content-Type', 'application/json');
HTTPClient.RequestBody := TStringStream.Create('{"richiesta": {"username":"utente","password":"lamiapassword"} }');
sRisp := HTTPClient.Post(AURL);
if HTTPClient.ResponseStatusCode = 200 then begin
jData := GetJSON(sRisp) ;
jItem := jData.Items[0];
if jItem.FindPath('esito').AsString = 'ERR000' then
cToken := jItem.FindPath('token').AsString ;
end else begin
.....
end;
finally
HTTPClient.Free;
end;
end;