Skip to content

Client Class

Client.aplc is the main entry point of the generated client. It is a Dyalog APL class that wires together all the generated operation namespaces and handles shared concerns — base URL, authentication, cookies, and HTTP dispatch.

Creating an instance

The constructor takes a single config namespace. baseUrl is the only required field.

config  (
    baseUrl: 'https://api.example.com'
)

client  ⎕NEW Client config

Config fields

Field                 Required Default Description
baseUrl Yes Root URL prepended to every request path.
mock No ¯1 Controls whether requests are actually sent. See Mock mode.
headers No Extra headers sent with every request, as a vector of name–value pairs.
security No1 Authentication credentials. See Authentication.

Authentication

API key, HTTP bearer, and HTTP basic authentication are supported. OAuth is not currently implemented, but planned to be implemented.

Set a security namespace on the config with the fields required by the API's authentication scheme. Only provide the fields relevant to the scheme used.

Field Description
apiKey API key value, for specs that use apiKey security.
bearerToken Bearer token, for specs that use HTTP bearer security.
username Username for HTTP basic auth.
password Password for HTTP basic auth.

Tag fields

After construction, the client exposes one public field per API tag. Calling an operation looks like:

client.<tag>.<OperationId> <args>

For example, if the spec defines a user tag with a ListUsers operation:

client.user.ListUsers ()

Operations with no tag in the spec are grouped under a default field.

Mock mode

The mock config field controls whether requests are actually sent:

Value Behaviour
¯1 Send the request and return the response normally.
1 Build the request but do not send it; return the raw HttpCommand request object.
2 Return the HttpCommand argument namespace directly, without building or sending the request.

Debug mode

Setting client.∆.Debug←1 prints the raw HTTP request to the session before sending it.

client..Debug  1
client.user.ListUsers ()   ⍝ prints request details to the session

This is not compatible with mock←2.


  1. Required if the API uses authentication.