DSLModule

PackageAxial.HttpClient

Summary

NameSignatureSynopsis
secretsecret valueMarks an interpolated URL value for diagnostic redaction.
GETGET templateCreates a GET request from an interpolated URL.
HEADHEAD templateCreates a HEAD request from an interpolated URL with encoded holes.
POSTPOST templateCreates a POST request from an interpolated URL with encoded holes.
PUTPUT templateCreates a PUT request from an interpolated URL with encoded holes.
PATCHPATCH templateCreates a PATCH request from an interpolated URL with encoded holes.
DELETEDELETE templateCreates a DELETE request from an interpolated URL with encoded holes.
queryquery name value requestAppends a URL-encoded query parameter.
secretQuerysecretQuery name value requestAppends a redacted query parameter.
headerheader name value requestAppends one request header.
bearerbearer token requestAdds a redacted bearer-token Authorization header.
basicAuthbasicAuth user password requestAdds a redacted basic-auth Authorization header.
timeouttimeout value requestSets a per-request timeout.
jsonBodyjsonBody json requestSends an already-serialized JSON body.
jsonBodyOfjsonBodyOf encode value requestEncodes and sends a JSON body.
textBodytextBody content requestSends a plain-text body.
formBodyformBody fields requestSends URL-encoded form fields.
expectexpect statuses requestReplaces the statuses treated as success.
expectAnyexpectAny requestTreats every status as success.
fetchfetch requestSends the request and returns the full transcript, failing on unexpected statuses.
fetchTextfetchText requestSends the request and returns the body text.
fetchBytesfetchBytes requestSends the request and returns the body bytes.
fetchJsonfetchJson decode requestSends the request and decodes the JSON response.
withRetrieswithRetries maxAttempts workflowRetries transient failures with exponential backoff.

secret

secret value
Member
Marks an interpolated URL value for diagnostic redaction. <example><code>GET $"https://api.example.com/users?key={secret apiKey}"</code></example>

Parameters

NameTypeDescription
value'a

Returns

SecretValue

GET

GET template
Member
Creates a GET request from an interpolated URL. Every hole is URL-encoded as one value. <example><code>GET $"https://api.example.com/users/{userId}"</code></example>

Parameters

NameTypeDescription
templateFormattableString

Returns

HttpRequest

HEAD

HEAD template
Member
Creates a HEAD request from an interpolated URL with encoded holes.

Parameters

NameTypeDescription
templateFormattableString

Returns

HttpRequest

POST

POST template
Member
Creates a POST request from an interpolated URL with encoded holes. <example><code>POST $"https://api.example.com/users" |&gt; jsonBody payload</code></example>

Parameters

NameTypeDescription
templateFormattableString

Returns

HttpRequest

PUT

PUT template
Member
Creates a PUT request from an interpolated URL with encoded holes.

Parameters

NameTypeDescription
templateFormattableString

Returns

HttpRequest

PATCH

PATCH template
Member
Creates a PATCH request from an interpolated URL with encoded holes.

Parameters

NameTypeDescription
templateFormattableString

Returns

HttpRequest

DELETE

DELETE template
Member
Creates a DELETE request from an interpolated URL with encoded holes.

Parameters

NameTypeDescription
templateFormattableString

Returns

HttpRequest

query

query name value request
Member
Appends a URL-encoded query parameter. <example><code>GET $"{root}/search" |&gt; query "q" term</code></example>

Parameters

NameTypeDescription
namestring
value'a
requestHttpRequest

Returns

HttpRequest

secretQuery

secretQuery name value request
Member
Appends a redacted query parameter. <example><code>request |&gt; secretQuery "api_key" key</code></example>

Parameters

NameTypeDescription
namestring
value'a
requestHttpRequest

Returns

HttpRequest

header

header name value request
Member
Appends one request header. <example><code>request |&gt; header "Accept" "text/csv"</code></example>

Parameters

NameTypeDescription
namestring
valuestring
requestHttpRequest

Returns

HttpRequest

bearer

bearer token request
Member
Adds a redacted bearer-token Authorization header. <example><code>request |&gt; bearer token</code></example>

Parameters

NameTypeDescription
tokenstring
requestHttpRequest

Returns

HttpRequest

basicAuth

basicAuth user password request
Member
Adds a redacted basic-auth Authorization header. <example><code>request |&gt; basicAuth user password</code></example>

Parameters

NameTypeDescription
userstring
passwordstring
requestHttpRequest

Returns

HttpRequest

timeout

timeout value request
Member
Sets a per-request timeout. <example><code>request |&gt; timeout (TimeSpan.FromSeconds 5.0)</code></example>

Parameters

NameTypeDescription
valueTimeSpan
requestHttpRequest

Returns

HttpRequest

jsonBody

jsonBody json request
Member
Sends an already-serialized JSON body. <example><code>request |&gt; jsonBody """{"name":"Ada"}"""</code></example>

Parameters

NameTypeDescription
jsonstring
requestHttpRequest

Returns

HttpRequest

jsonBodyOf

jsonBodyOf encode value request
Member
Encodes and sends a JSON body. <example><code>request |&gt; jsonBodyOf (Json.serialize codec) user</code></example>

Parameters

NameTypeDescription
encode'a -> string
value'a
requestHttpRequest

Returns

HttpRequest

textBody

textBody content request
Member
Sends a plain-text body. <example><code>request |&gt; textBody "hello"</code></example>

Parameters

NameTypeDescription
contentstring
requestHttpRequest

Returns

HttpRequest

formBody

formBody fields request
Member
Sends URL-encoded form fields. <example><code>request |&gt; formBody [ "q", "axial" ]</code></example>

Parameters

NameTypeDescription
fields(string * string) list
requestHttpRequest

Returns

HttpRequest

expect

expect statuses request
Member
Replaces the statuses treated as success. <example><code>request |&gt; expect [ 200; 404 ]</code></example>

Parameters

NameTypeDescription
statusesint seq
requestHttpRequest

Returns

HttpRequest

expectAny

expectAny request
Member
Treats every status as success. <example><code>request |&gt; expectAny</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

HttpRequest

fetch

fetch request
Member
Sends the request and returns the full transcript, failing on unexpected statuses. <example><code>GET $"{root}/users" |&gt; fetch</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

Flow<'a, HttpError, HttpResponse>

fetchText

fetchText request
Member
Sends the request and returns the body text. <example><code>GET $"{root}/readme" |&gt; fetchText</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

Flow<'a, HttpError, string>

fetchBytes

fetchBytes request
Member
Sends the request and returns the body bytes. <example><code>GET $"{root}/logo.png" |&gt; fetchBytes</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

Flow<'a, HttpError, byte array>

fetchJson

fetchJson decode request
Member
Sends the request and decodes the JSON response. <example><code>GET $"{root}/users/{id}" |&gt; fetchJson (Json.deserializeResult codec)</code></example>

Parameters

NameTypeDescription
decodestring -> Result<'a, string>
requestHttpRequest

Returns

Flow<'b, HttpError, 'a>

withRetries

withRetries maxAttempts workflow
Member
Retries transient failures with exponential backoff. <example><code>GET $"{root}/users" |&gt; fetchJson decode |&gt; withRetries 4</code></example>

Parameters

NameTypeDescription
maxAttemptsint
workflowFlow<'a, HttpError, 'b>

Returns

Flow<'a, HttpError, 'b>