Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Simple REST Example
See more REST Examples
Demonstrates a very simple RESTful API call to get a stock time series daily (quotes) from Alpha Vantage.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Rest;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
rest: TRest;
bTls: Boolean;
port: Integer;
bAutoReconnect: Boolean;
responseJson: string;
begin
success := False;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
rest := TRest.Create;
// Connect to the REST server.
bTls := True;
port := 443;
bAutoReconnect := True;
success := rest.Connect('www.alphavantage.co',port,bTls,bAutoReconnect);
if (success <> True) then
begin
WriteLn(rest.LastErrorText);
Exit;
end;
// Get a stock quote:
// Sending GET request to https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=my_api_key
success := rest.AddQueryParam('function','TIME_SERIES_DAILY');
success := rest.AddQueryParam('symbol','AAPL');
success := rest.AddQueryParam('apikey','my_api_key');
responseJson := rest.FullRequestNoBody('GET','/query');
if (rest.LastMethodSuccess <> True) then
begin
WriteLn(rest.LastErrorText);
Exit;
end;
WriteLn(responseJson);
// Sample response:
// {
// "Meta Data": {
// "1. Information": "Daily Prices (open, high, low, close) and Volumes",
// "2. Symbol": "AAPL",
// "3. Last Refreshed": "2019-12-06",
// "4. Output Size": "Compact",
// "5. Time Zone": "US/Eastern"
// },
// "Time Series (Daily)": {
// "2019-12-06": {
// "1. open": "267.4800",
// "2. high": "271.0000",
// "3. low": "267.3000",
// "4. close": "270.7100",
// "5. volume": "25447644"
// },
// "2019-12-05": {
// "1. open": "263.7900",
// "2. high": "265.8900",
// "3. low": "262.7300",
// "4. close": "265.5800",
// "5. volume": "18661343"
// },
// "2019-12-04": {
// "1. open": "261.0700",
// "2. high": "263.3100",
// "3. low": "260.6800",
// "4. close": "261.7400",
// "5. volume": "16810388"
// },
// ...
// "2019-07-18": {
// "1. open": "204.0000",
// "2. high": "205.8800",
// "3. low": "203.7000",
// "4. close": "205.6600",
// "5. volume": "18582161"
// }
// }
// }
rest.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.