HttpModule

PackageAxial.HttpClient

Summary

NameSignatureSynopsis
getHttp.get urlCreates a GET request.
headHttp.head urlCreates a HEAD request.
postHttp.post urlCreates a POST request.
putHttp.put urlCreates a PUT request.
patchHttp.patch urlCreates a PATCH request.
deleteHttp.delete urlCreates a DELETE request.
serviceHttp.service Sends a request and returns the transcript without interpreting the status expectation.
sendResultHttp.sendResult requestNo description available.
sendHttp.send requestSends a request and fails with <c>HttpError.Status</c> when the response is outside the expectation.
textHttp.text requestSends a request and returns the response body text.
bytesHttp.bytes requestSends a request and returns the exact response body bytes.
jsonHttp.json decode requestSends a request and decodes the JSON response body with the supplied decoder.
getStringHttp.getString urlSends a GET request and returns the response body, mirroring <c>HttpClient.GetStringAsync</c>.
getBytesHttp.getBytes urlSends a GET request and returns the body bytes, mirroring <c>HttpClient.GetByteArrayAsync</c>.
getJsonHttp.getJson decode urlSends a GET request and decodes the JSON response.
postStringHttp.postString url contentSends a POST request with a text body, mirroring <c>HttpClient.PostAsync</c> with string content.
postJsonHttp.postJson encode decode url valueEncodes a value as JSON, POSTs it, and decodes the JSON response.
retryTransientHttp.retryTransient maxAttempts baseDelay workflowRetries a workflow on transient HTTP errors with exponential backoff.
liveHttp.live clock clientCreates a live HTTP service backed by an explicit clock and <see cref="T:System.Net.Http.HttpClient" />.

get

Http.get url
Member
Creates a GET request. <example><code>Http.get "https://api.example.com/users"</code></example>

Parameters

NameTypeDescription
urlstring

Returns

HttpRequest

head

Http.head url
Member
Creates a HEAD request. <example><code>Http.head "https://api.example.com/users"</code></example>

Parameters

NameTypeDescription
urlstring

Returns

HttpRequest

post

Http.post url
Member
Creates a POST request. <example><code>Http.post "https://api.example.com/users"</code></example>

Parameters

NameTypeDescription
urlstring

Returns

HttpRequest

put

Http.put url
Member
Creates a PUT request. <example><code>Http.put "https://api.example.com/users/1"</code></example>

Parameters

NameTypeDescription
urlstring

Returns

HttpRequest

patch

Http.patch url
Member
Creates a PATCH request. <example><code>Http.patch "https://api.example.com/users/1"</code></example>

Parameters

NameTypeDescription
urlstring

Returns

HttpRequest

delete

Http.delete url
Member
Creates a DELETE request. <example><code>Http.delete "https://api.example.com/users/1"</code></example>

Parameters

NameTypeDescription
urlstring

Returns

HttpRequest

service

Http.service
Member
Sends a request and returns the transcript without interpreting the status expectation. <example><code>request |&gt; Http.sendResult</code></example> Reads the HTTP service from the environment.

Returns

Flow<'env, 'error, IHttp>

sendResult

Http.sendResult request
Member

Parameters

NameTypeDescription
requestHttpRequest

Returns

Flow<'env, HttpError, HttpResponse>

send

Http.send request
Member
Sends a request and fails with <c>HttpError.Status</c> when the response is outside the expectation. <example><code>request |&gt; Http.send</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

Flow<'env, HttpError, HttpResponse>

text

Http.text request
Member
Sends a request and returns the response body text. <example><code>Http.get url |&gt; Request.bearer token |&gt; Http.text</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

Flow<'env, HttpError, string>

bytes

Http.bytes request
Member
Sends a request and returns the exact response body bytes. <example><code>Http.get url |&gt; Http.bytes</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

Flow<'env, HttpError, byte array>

json

Http.json decode request
Member
Sends a request and decodes the JSON response body with the supplied decoder. <example><code>Http.get url |&gt; Request.acceptJson |&gt; Http.json (Json.deserializeResult codec)</code></example>

Parameters

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

Returns

Flow<'env, HttpError, 'value>

getString

Http.getString url
Member
Sends a GET request and returns the response body, mirroring <c>HttpClient.GetStringAsync</c>. <example><code>Http.getString "https://example.com"</code></example>

Parameters

NameTypeDescription
urlstring

Returns

Flow<'env, HttpError, string>

getBytes

Http.getBytes url
Member
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

NameTypeDescription
urlstring

Returns

Flow<'env, HttpError, byte array>

getJson

Http.getJson decode url
Member
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

NameTypeDescription
decodestring -> Result<'value, string>
urlstring

Returns

Flow<'env, HttpError, 'value>

postString

Http.postString url content
Member
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

NameTypeDescription
urlstring
contentstring

Returns

Flow<'env, HttpError, HttpResponse>

postJson

Http.postJson encode decode url value
Member
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

NameTypeDescription
encode'input -> string
decodestring -> Result<'value, string>
urlstring
value'input

Returns

Flow<'env, HttpError, 'value>

retryTransient

Http.retryTransient maxAttempts baseDelay workflow
Member
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 |&gt; Http.retryTransient 4 (TimeSpan.FromMilliseconds 200.0)</code></example>

Parameters

NameTypeDescription
maxAttemptsint
baseDelayTimeSpan
workflowFlow<'env, HttpError, 'value>

Returns

Flow<'env, HttpError, 'value>

live

Http.live clock client
Member
Creates a live HTTP service backed by an explicit clock and <see cref="T:System.Net.Http.HttpClient" />. <example><code>Http.live Clock.live (new HttpClient())</code></example>

Parameters

NameTypeDescription
clockIClock
clientHttpClient

Returns

IHttp