Sample code for 30+ languages & platforms
Tcl

Datev - Get a List of Clients

See more Datev Examples

Demonstrates how to get a list of clients in the accounting:clients Datev API.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set http [new_CkHttp]

# Implements the following CURL command:

# curl --request GET \
#   --url "https://accounting-clients.api.datev.de/platform/v2/clients?filter=REPLACE_THIS_VALUE&skip=REPLACE_THIS_VALUE&top=REPLACE_THIS_VALUE" \
#   --header "Authorization: Bearer REPLACE_BEARER_TOKEN" \
#   --header "X-Datev-Client-ID: clientId" \
#   --header "accept: application/json;charset=utf-8"

# Use the following online tool to generate HTTP code from a CURL command
# Convert a cURL Command to HTTP Source Code

set queryParams [new_CkJsonObject]

# ignore = queryParams.UpdateString("filter","REPLACE_THIS_VALUE");
# ignore = queryParams.UpdateString("skip","REPLACE_THIS_VALUE");
# ignore = queryParams.UpdateString("top","REPLACE_THIS_VALUE");

# Adds the "Authorization: Bearer REPLACE_BEARER_TOKEN" header.
CkHttp_put_AuthToken $http "REPLACE_BEARER_TOKEN"
CkHttp_SetRequestHeader $http "accept" "application/json;charset=utf-8"
CkHttp_SetRequestHeader $http "X-Datev-Client-ID" "DATEV_CLIENT_ID"

set resp [new_CkHttpResponse]

set success [CkHttp_HttpParams $http "GET" "https://accounting-clients.api.datev.de/platform-sandbox/v2/clients" $queryParams $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $queryParams
    delete_CkHttpResponse $resp
    exit
}

puts [CkHttpResponse_get_StatusCode $resp]
puts [CkHttpResponse_bodyStr $resp]

set jarr [new_CkJsonArray]

# Insert code here to load the above JSON array into the jarr object.
CkJsonArray_Load $jarr [CkHttpResponse_bodyStr $resp]

# json is a CkJsonObject

set i 0
set count_i [CkJsonArray_get_Size $jarr]
while {$i < $count_i} {
    set json [CkJsonArray_ObjectAt $jarr $i]
    set client_number [CkJsonObject_IntOf $json "client_number"]
    set consultant_number [CkJsonObject_IntOf $json "consultant_number"]
    set id [CkJsonObject_stringOf $json "id"]
    set name [CkJsonObject_stringOf $json "name"]
    set j 0
    set count_j [CkJsonObject_SizeOfArray $json "services"]
    while {$j < $count_j} {
        CkJsonObject_put_J $json $j
        set name [CkJsonObject_stringOf $json "services[j].name"]
        set k 0
        set count_k [CkJsonObject_SizeOfArray $json "services[j].scopes"]
        while {$k < $count_k} {
            CkJsonObject_put_K $json $k
            set strVal [CkJsonObject_stringOf $json "services[j].scopes[k]"]
            set k [expr $k + 1]
        }
        set j [expr $j + 1]
    }
    delete_CkJsonObject $json

    set i [expr $i + 1]
}

delete_CkHttp $http
delete_CkJsonObject $queryParams
delete_CkHttpResponse $resp
delete_CkJsonArray $jarr