DataFlex
DataFlex
Refinitiv World-Check One - Get Top Level Groups
See more Refinitiv Examples
Sends a signed GET request to get the top level groups.Note: This example requires Chilkat v9.5.0.89 or later.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
Handle hoHttp
String sResponseJson
Handle hoJarr
Variant vJsonObj
Handle hoJsonObj
String sId
String sName
String sParentId
Boolean iHasChildren
String sStatus
Integer j
Integer iCount_j
Integer i
Integer iCount_i
String sTemp1
Integer iTemp1
Boolean bTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
// Create the following JSON:
//
// {
// "keyId": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
// "hmacKey": "xxxxzI3vi58xxxCBxxx1+P/d8tGxx7KuLqN/KMPNxxxxekhj8/bx83+1YQSUxxxxYyv939ceY06GvhYRKmxxxx==",
// "algorithm": "hmac-sha256",
// "headers": [
// "(request-target)",
// "host",
// "date"
// ]
// }
// Substitute your actual API key and API secret in place of "api-key" and "api-secret"
Get ComUpdateString Of hoJson "keyId" "api-key" To iSuccess
Get ComUpdateString Of hoJson "hmacKey" "api-secret" To iSuccess
Get ComUpdateString Of hoJson "algorithm" "hmac-sha256" To iSuccess
// Indicate the names of the headers to be included in the signature.
// "(request-target)" is not actually a header name, but is a special name for HTTP signatures.
// Copy the following three lines of code exactly as-is.
// Do not replace "host", "date", or "(request-target)" with values.
Get ComUpdateString Of hoJson "headers[0]" "(request-target)" To iSuccess
Get ComUpdateString Of hoJson "headers[1]" "host" To iSuccess
Get ComUpdateString Of hoJson "headers[2]" "date" To iSuccess
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Setting the AuthSignature property causes the following header to be computed and added:
// Authorization: Signature keyId="...", algorithm="hmac-sha256", headers="(request-target) host date", signature="..."
Get ComEmit Of hoJson To sTemp1
Set ComAuthSignature Of hoHttp To sTemp1
Send ComSetRequestHeader To hoHttp "Cache-Control" "no-cache"
// Chilkat will auto-add the Date header because it's needed by the HTTP Signature.
Get ComQuickGetStr Of hoHttp "https://api-worldcheck.refinitiv.com/v2/groups" To sResponseJson
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Showln sResponseJson
Showln "----"
// A 200 status code indicates success.
Get ComLastStatus Of hoHttp To iTemp1
Showln "Status code = " iTemp1
// Successful JSON looks like this:
// [
// {
// "id": "...",
// "name": "Company Name",
// "parentId": null,
// "hasChildren": false,
// "status": "ACTIVE",
// "children": []
// }
// ]
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
Get Create (RefClass(cComChilkatJsonArray)) To hoJarr
If (Not(IsComObjectCreated(hoJarr))) Begin
Send CreateComObject of hoJarr
End
Get ComLoad Of hoJarr sResponseJson To iSuccess
Move 0 To i
Get ComSize Of hoJarr To iCount_i
While (i < iCount_i)
Get ComObjectAt Of hoJarr i To vJsonObj
If (IsComObject(vJsonObj)) Begin
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonObj
Set pvComObject Of hoJsonObj To vJsonObj
End
Get ComStringOf Of hoJsonObj "id" To sId
Get ComStringOf Of hoJsonObj "name" To sName
Get ComStringOf Of hoJsonObj "parentId" To sParentId
Get ComBoolOf Of hoJsonObj "hasChildren" To iHasChildren
Get ComStringOf Of hoJsonObj "status" To sStatus
Move 0 To j
Get ComSizeOfArray Of hoJsonObj "children" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJsonObj To j
Move (j + 1) To j
Loop
Send Destroy of hoJsonObj
Move (i + 1) To i
Loop
End_Procedure