HttpModule
PackageAxial.HttpClient
Summary
| Name | Signature | Synopsis |
|---|---|---|
| get | Http.get url | Creates a GET request. |
| head | Http.head url | Creates a HEAD request. |
| post | Http.post url | Creates a POST request. |
| put | Http.put url | Creates a PUT request. |
| patch | Http.patch url | Creates a PATCH request. |
| delete | Http.delete url | Creates a DELETE request. |
| service | Http.service | Sends a request and returns the transcript without interpreting the status expectation. |
| sendResult | Http.sendResult request | No description available. |
| send | Http.send request | Sends a request and fails with <c>HttpError.Status</c> when the response is outside the expectation. |
| text | Http.text request | Sends a request and returns the response body text. |
| bytes | Http.bytes request | Sends a request and returns the exact response body bytes. |
| json | Http.json decode request | Sends a request and decodes the JSON response body with the supplied decoder. |
| getString | Http.getString url | Sends a GET request and returns the response body, mirroring <c>HttpClient.GetStringAsync</c>. |
| getBytes | Http.getBytes url | Sends a GET request and returns the body bytes, mirroring <c>HttpClient.GetByteArrayAsync</c>. |
| getJson | Http.getJson decode url | Sends a GET request and decodes the JSON response. |
| postString | Http.postString url content | Sends a POST request with a text body, mirroring <c>HttpClient.PostAsync</c> with string content. |
| postJson | Http.postJson encode decode url value | Encodes a value as JSON, POSTs it, and decodes the JSON response. |
| retryTransient | Http.retryTransient maxAttempts baseDelay workflow | Retries a workflow on transient HTTP errors with exponential backoff. |
| live | Http.live clock client | Creates a live HTTP service backed by an explicit clock and <see cref="T:System.Net.Http.HttpClient" />. |
Creates a GET request. <example><code>Http.get "https://api.example.com/users"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
HttpRequest
Creates a HEAD request. <example><code>Http.head "https://api.example.com/users"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
HttpRequest
Creates a POST request. <example><code>Http.post "https://api.example.com/users"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
HttpRequest
Creates a PUT request. <example><code>Http.put "https://api.example.com/users/1"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
HttpRequest
Creates a PATCH request. <example><code>Http.patch "https://api.example.com/users/1"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
HttpRequest
Creates a DELETE request. <example><code>Http.delete "https://api.example.com/users/1"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
HttpRequest
Sends a request and returns the transcript without interpreting the status expectation.
<example><code>request |> Http.sendResult</code></example>
Reads the HTTP service from the environment.
Returns
Flow<'env, 'error, IHttp>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Flow<'env, HttpError, HttpResponse>
Sends a request and fails with <c>HttpError.Status</c> when the response is outside the expectation.
<example><code>request |> Http.send</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Flow<'env, HttpError, HttpResponse>
Sends a request and returns the response body text.
<example><code>Http.get url |> Request.bearer token |> Http.text</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Flow<'env, HttpError, string>
Sends a request and returns the exact response body bytes.
<example><code>Http.get url |> Http.bytes</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Flow<'env, HttpError, byte array>
Sends a request and decodes the JSON response body with the supplied decoder.
<example><code>Http.get url |> Request.acceptJson |> Http.json (Json.deserializeResult codec)</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| decode | string -> Result<'value, string> | |
| request | HttpRequest |
Returns
Flow<'env, HttpError, 'value>
Sends a GET request and returns the response body, mirroring <c>HttpClient.GetStringAsync</c>.
<example><code>Http.getString "https://example.com"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
Flow<'env, HttpError, string>
Sends a GET request and returns the body bytes, mirroring <c>HttpClient.GetByteArrayAsync</c>.
<example><code>Http.getBytes "https://example.com/logo.png"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string |
Returns
Flow<'env, HttpError, byte array>
Sends a GET request and decodes the JSON response.
<example><code>Http.getJson (Json.deserializeResult codec) "https://api.example.com/users/1"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| decode | string -> Result<'value, string> | |
| url | string |
Returns
Flow<'env, HttpError, 'value>
Sends a POST request with a text body, mirroring <c>HttpClient.PostAsync</c> with string content.
<example><code>Http.postString "https://example.com/echo" "hello"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| url | string | |
| content | string |
Returns
Flow<'env, HttpError, HttpResponse>
Encodes a value as JSON, POSTs it, and decodes the JSON response.
<example><code>Http.postJson (Json.serialize codec) (Json.deserializeResult codec) url user</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| encode | 'input -> string | |
| decode | string -> Result<'value, string> | |
| url | string | |
| value | 'input |
Returns
Flow<'env, HttpError, 'value>
Retries a workflow on transient HTTP errors with exponential backoff.
Permanent failures such as 404 or decode errors are never retried.
<example><code>Http.getJson decode url |> Http.retryTransient 4 (TimeSpan.FromMilliseconds 200.0)</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| maxAttempts | int | |
| baseDelay | TimeSpan | |
| workflow | Flow<'env, HttpError, 'value> |
Returns
Flow<'env, HttpError, 'value>

