DSLModule
PackageAxial.HttpClient
Summary
| Name | Signature | Synopsis |
|---|---|---|
| secret | secret value | Marks an interpolated URL value for diagnostic redaction. |
| GET | GET template | Creates a GET request from an interpolated URL. |
| HEAD | HEAD template | Creates a HEAD request from an interpolated URL with encoded holes. |
| POST | POST template | Creates a POST request from an interpolated URL with encoded holes. |
| PUT | PUT template | Creates a PUT request from an interpolated URL with encoded holes. |
| PATCH | PATCH template | Creates a PATCH request from an interpolated URL with encoded holes. |
| DELETE | DELETE template | Creates a DELETE request from an interpolated URL with encoded holes. |
| query | query name value request | Appends a URL-encoded query parameter. |
| secretQuery | secretQuery name value request | Appends a redacted query parameter. |
| header | header name value request | Appends one request header. |
| bearer | bearer token request | Adds a redacted bearer-token Authorization header. |
| basicAuth | basicAuth user password request | Adds a redacted basic-auth Authorization header. |
| timeout | timeout value request | Sets a per-request timeout. |
| jsonBody | jsonBody json request | Sends an already-serialized JSON body. |
| jsonBodyOf | jsonBodyOf encode value request | Encodes and sends a JSON body. |
| textBody | textBody content request | Sends a plain-text body. |
| formBody | formBody fields request | Sends URL-encoded form fields. |
| expect | expect statuses request | Replaces the statuses treated as success. |
| expectAny | expectAny request | Treats every status as success. |
| fetch | fetch request | Sends the request and returns the full transcript, failing on unexpected statuses. |
| fetchText | fetchText request | Sends the request and returns the body text. |
| fetchBytes | fetchBytes request | Sends the request and returns the body bytes. |
| fetchJson | fetchJson decode request | Sends the request and decodes the JSON response. |
| withRetries | withRetries maxAttempts workflow | Retries transient failures with exponential backoff. |
Marks an interpolated URL value for diagnostic redaction.
<example><code>GET $"https://api.example.com/users?key={secret apiKey}"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| value | 'a |
Returns
SecretValue
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
| Name | Type | Description |
|---|---|---|
| template | FormattableString |
Returns
HttpRequest
Creates a HEAD request from an interpolated URL with encoded holes.
Parameters
| Name | Type | Description |
|---|---|---|
| template | FormattableString |
Returns
HttpRequest
Creates a POST request from an interpolated URL with encoded holes.
<example><code>POST $"https://api.example.com/users" |> jsonBody payload</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| template | FormattableString |
Returns
HttpRequest
Creates a PUT request from an interpolated URL with encoded holes.
Parameters
| Name | Type | Description |
|---|---|---|
| template | FormattableString |
Returns
HttpRequest
Creates a PATCH request from an interpolated URL with encoded holes.
Parameters
| Name | Type | Description |
|---|---|---|
| template | FormattableString |
Returns
HttpRequest
Creates a DELETE request from an interpolated URL with encoded holes.
Parameters
| Name | Type | Description |
|---|---|---|
| template | FormattableString |
Returns
HttpRequest
Appends a URL-encoded query parameter. <example><code>GET $"{root}/search" |> query "q" term</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| name | string | |
| value | 'a | |
| request | HttpRequest |
Returns
HttpRequest
Appends a redacted query parameter. <example><code>request |> secretQuery "api_key" key</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| name | string | |
| value | 'a | |
| request | HttpRequest |
Returns
HttpRequest
Appends one request header. <example><code>request |> header "Accept" "text/csv"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| name | string | |
| value | string | |
| request | HttpRequest |
Returns
HttpRequest
Adds a redacted bearer-token Authorization header. <example><code>request |> bearer token</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| token | string | |
| request | HttpRequest |
Returns
HttpRequest
Adds a redacted basic-auth Authorization header. <example><code>request |> basicAuth user password</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| user | string | |
| password | string | |
| request | HttpRequest |
Returns
HttpRequest
Sets a per-request timeout. <example><code>request |> timeout (TimeSpan.FromSeconds 5.0)</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| value | TimeSpan | |
| request | HttpRequest |
Returns
HttpRequest
Sends an already-serialized JSON body. <example><code>request |> jsonBody """{"name":"Ada"}"""</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| json | string | |
| request | HttpRequest |
Returns
HttpRequest
Encodes and sends a JSON body. <example><code>request |> jsonBodyOf (Json.serialize codec) user</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| encode | 'a -> string | |
| value | 'a | |
| request | HttpRequest |
Returns
HttpRequest
Sends a plain-text body. <example><code>request |> textBody "hello"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| content | string | |
| request | HttpRequest |
Returns
HttpRequest
Sends URL-encoded form fields. <example><code>request |> formBody [ "q", "axial" ]</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| fields | (string * string) list | |
| request | HttpRequest |
Returns
HttpRequest
Replaces the statuses treated as success. <example><code>request |> expect [ 200; 404 ]</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| statuses | int seq | |
| request | HttpRequest |
Returns
HttpRequest
Treats every status as success. <example><code>request |> expectAny</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
HttpRequest
Sends the request and returns the full transcript, failing on unexpected statuses.
<example><code>GET $"{root}/users" |> fetch</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Flow<'a, HttpError, HttpResponse>
Sends the request and returns the body text. <example><code>GET $"{root}/readme" |> fetchText</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Flow<'a, HttpError, string>
Sends the request and returns the body bytes. <example><code>GET $"{root}/logo.png" |> fetchBytes</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Flow<'a, HttpError, byte array>
Sends the request and decodes the JSON response.
<example><code>GET $"{root}/users/{id}" |> fetchJson (Json.deserializeResult codec)</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| decode | string -> Result<'a, string> | |
| request | HttpRequest |
Returns
Flow<'b, HttpError, 'a>
Retries transient failures with exponential backoff.
<example><code>GET $"{root}/users" |> fetchJson decode |> withRetries 4</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| maxAttempts | int | |
| workflow | Flow<'a, HttpError, 'b> |
Returns
Flow<'a, HttpError, 'b>

