RequestModule

PackageAxial.HttpClient

Summary

NameSignatureSynopsis
createRequest.create method urlCreates a request with the supplied method and already-formed URL.
methodRequest.method requestReturns the request method.
urlRequest.url requestReturns the real request URL without appended query parameters.
queryParametersRequest.queryParameters requestReturns query parameters as name-value pairs.
headerValuesRequest.headerValues requestReturns headers as name-value pairs.
bodyRequest.body requestReturns the request body.
tryTimeoutRequest.tryTimeout requestReturns the per-request timeout.
expectationRequest.expectation requestReturns the success expectation.
queryRequest.query name value requestAppends one URL-encoded query parameter.
secretQueryRequest.secretQuery name value requestAppends a query parameter whose value is replaced with <c>***</c> in plans and error transcripts.
headerRequest.header name value requestAppends one request header.
secretHeaderRequest.secretHeader name value requestAppends a header whose value is replaced with <c>***</c> in plans and error transcripts.
bearerRequest.bearer token requestAdds a bearer-token Authorization header.
basicAuthRequest.basicAuth user password requestAdds a basic-auth Authorization header.
acceptRequest.accept mediaType requestSets the Accept header.
acceptJsonRequest.acceptJson requestSets the Accept header to <c>application/json</c>.
userAgentRequest.userAgent value requestSets the User-Agent header.
timeoutRequest.timeout value requestSets a per-request timeout enforced by the live service.
textBodyRequest.textBody content requestSends a plain-text body.
jsonBodyRequest.jsonBody json requestSends an already-serialized JSON body with the <c>application/json</c> content type.
jsonBodyWithRequest.jsonBodyWith encode value requestEncodes a value with the supplied serializer and sends it as JSON.
bytesBodyRequest.bytesBody contentType content requestSends raw bytes with an explicit content type.
formBodyRequest.formBody fields requestSends URL-encoded form fields.
expectRequest.expect statuses requestReplaces the statuses treated as success.
expectAnyRequest.expectAny requestTreats every status as success so the caller can branch on the code explicitly.
renderRequest.render requestRenders the redacted request line used in error transcripts.
planRequest.plan requestReturns a redacted request plan without sending anything.

create

Request.create method url
Member
Creates a request with the supplied method and already-formed URL. <example><code>Request.create Method.Get "https://api.example.com/users"</code></example>

Parameters

NameTypeDescription
methodMethod
urlstring

Returns

HttpRequest

method

Request.method request
Member
Returns the request method. <example><code>Request.method request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

Method

url

Request.url request
Member
Returns the real request URL without appended query parameters. <example><code>Request.url request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

string

queryParameters

Request.queryParameters request
Member
Returns query parameters as name-value pairs. <example><code>Request.queryParameters request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

(string * string) list

headerValues

Request.headerValues request
Member
Returns headers as name-value pairs. <example><code>Request.headerValues request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

(string * string) list

body

Request.body request
Member
Returns the request body. <example><code>Request.body request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

RequestBody

tryTimeout

Request.tryTimeout request
Member
Returns the per-request timeout. <example><code>Request.tryTimeout request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

TimeSpan option

expectation

Request.expectation request
Member
Returns the success expectation. <example><code>Request.expectation request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

StatusExpectation

query

Request.query name value request
Member
Appends one URL-encoded query parameter. <example><code>request |&gt; Request.query "page" 2</code></example>

Parameters

NameTypeDescription
namestring
valueobj
requestHttpRequest

Returns

HttpRequest

secretQuery

Request.secretQuery name value request
Member
Appends a query parameter whose value is replaced with <c>***</c> in plans and error transcripts. <example><code>request |&gt; Request.secretQuery "api_key" key</code></example>

Parameters

NameTypeDescription
namestring
valueobj
requestHttpRequest

Returns

HttpRequest

header

Request.header name value request
Member
Appends one request header. <example><code>request |&gt; Request.header "Accept" "application/json"</code></example>

Parameters

NameTypeDescription
namestring
valuestring
requestHttpRequest

Returns

HttpRequest

secretHeader

Request.secretHeader name value request
Member
Appends a header whose value is replaced with <c>***</c> in plans and error transcripts. <example><code>request |&gt; Request.secretHeader "X-Api-Key" key</code></example>

Parameters

NameTypeDescription
namestring
valuestring
requestHttpRequest

Returns

HttpRequest

bearer

Request.bearer token request
Member
Adds a bearer-token Authorization header. The token is always redacted in diagnostics. <example><code>request |&gt; Request.bearer token</code></example>

Parameters

NameTypeDescription
tokenstring
requestHttpRequest

Returns

HttpRequest

basicAuth

Request.basicAuth user password request
Member
Adds a basic-auth Authorization header. The credentials are always redacted in diagnostics. <example><code>request |&gt; Request.basicAuth user password</code></example>

Parameters

NameTypeDescription
userstring
passwordstring
requestHttpRequest

Returns

HttpRequest

accept

Request.accept mediaType request
Member
Sets the Accept header. <example><code>request |&gt; Request.accept "application/json"</code></example>

Parameters

NameTypeDescription
mediaTypestring
requestHttpRequest

Returns

HttpRequest

acceptJson

Request.acceptJson request
Member
Sets the Accept header to <c>application/json</c>. <example><code>request |&gt; Request.acceptJson</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

HttpRequest

userAgent

Request.userAgent value request
Member
Sets the User-Agent header. <example><code>request |&gt; Request.userAgent "axial-app/1.0"</code></example>

Parameters

NameTypeDescription
valuestring
requestHttpRequest

Returns

HttpRequest

timeout

Request.timeout value request
Member
Sets a per-request timeout enforced by the live service. <example><code>request |&gt; Request.timeout (TimeSpan.FromSeconds 5.0)</code></example>

Parameters

NameTypeDescription
valueTimeSpan
requestHttpRequest

Returns

HttpRequest

textBody

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

Parameters

NameTypeDescription
contentstring
requestHttpRequest

Returns

HttpRequest

jsonBody

Request.jsonBody json request
Member
Sends an already-serialized JSON body with the <c>application/json</c> content type. <example><code>request |&gt; Request.jsonBody """{"name":"Ada"}"""</code></example>

Parameters

NameTypeDescription
jsonstring
requestHttpRequest

Returns

HttpRequest

jsonBodyWith

Request.jsonBodyWith encode value request
Member
Encodes a value with the supplied serializer and sends it as JSON. <example><code>request |&gt; Request.jsonBodyWith (Json.serialize codec) user</code></example>

Parameters

NameTypeDescription
encode'value -> string
value'value
requestHttpRequest

Returns

HttpRequest

bytesBody

Request.bytesBody contentType content request
Member
Sends raw bytes with an explicit content type. <example><code>request |&gt; Request.bytesBody "application/octet-stream" payload</code></example>

Parameters

NameTypeDescription
contentTypestring
contentbyte array
requestHttpRequest

Returns

HttpRequest

formBody

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

Parameters

NameTypeDescription
fields(string * string) list
requestHttpRequest

Returns

HttpRequest

expect

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

Parameters

NameTypeDescription
statusesint seq
requestHttpRequest

Returns

HttpRequest

expectAny

Request.expectAny request
Member
Treats every status as success so the caller can branch on the code explicitly. <example><code>request |&gt; Request.expectAny</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

HttpRequest

render

Request.render request
Member
Renders the redacted request line used in error transcripts. <example><code>Request.render request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

string

plan

Request.plan request
Member
Returns a redacted request plan without sending anything. <example><code>Request.plan request</code></example>

Parameters

NameTypeDescription
requestHttpRequest

Returns

RequestPlan