PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkRest.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
rest.i = CkRest::ckCreate()
If rest.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Connect to the REST server.
bTls.i = 1
port.i = 443
bAutoReconnect.i = 1
success = CkRest::ckConnect(rest,"www.alphavantage.co",port,bTls,bAutoReconnect)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
ProcedureReturn
EndIf
; Get a stock quote:
; Sending GET request to https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=my_api_key
success = CkRest::ckAddQueryParam(rest,"function","TIME_SERIES_DAILY")
success = CkRest::ckAddQueryParam(rest,"symbol","AAPL")
success = CkRest::ckAddQueryParam(rest,"apikey","my_api_key")
responseJson.s = CkRest::ckFullRequestNoBody(rest,"GET","/query")
If CkRest::ckLastMethodSuccess(rest) <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
ProcedureReturn
EndIf
Debug 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"
; }
; }
; }
CkRest::ckDispose(rest)
ProcedureReturn
EndProcedure