RequestModule
PackageAxial.HttpClient
Summary
| Name | Signature | Synopsis |
|---|---|---|
| create | Request.create method url | Creates a request with the supplied method and already-formed URL. |
| method | Request.method request | Returns the request method. |
| url | Request.url request | Returns the real request URL without appended query parameters. |
| queryParameters | Request.queryParameters request | Returns query parameters as name-value pairs. |
| headerValues | Request.headerValues request | Returns headers as name-value pairs. |
| body | Request.body request | Returns the request body. |
| tryTimeout | Request.tryTimeout request | Returns the per-request timeout. |
| expectation | Request.expectation request | Returns the success expectation. |
| query | Request.query name value request | Appends one URL-encoded query parameter. |
| secretQuery | Request.secretQuery name value request | Appends a query parameter whose value is replaced with <c>***</c> in plans and error transcripts. |
| header | Request.header name value request | Appends one request header. |
| secretHeader | Request.secretHeader name value request | Appends a header whose value is replaced with <c>***</c> in plans and error transcripts. |
| bearer | Request.bearer token request | Adds a bearer-token Authorization header. |
| basicAuth | Request.basicAuth user password request | Adds a basic-auth Authorization header. |
| accept | Request.accept mediaType request | Sets the Accept header. |
| acceptJson | Request.acceptJson request | Sets the Accept header to <c>application/json</c>. |
| userAgent | Request.userAgent value request | Sets the User-Agent header. |
| timeout | Request.timeout value request | Sets a per-request timeout enforced by the live service. |
| textBody | Request.textBody content request | Sends a plain-text body. |
| jsonBody | Request.jsonBody json request | Sends an already-serialized JSON body with the <c>application/json</c> content type. |
| jsonBodyWith | Request.jsonBodyWith encode value request | Encodes a value with the supplied serializer and sends it as JSON. |
| bytesBody | Request.bytesBody contentType content request | Sends raw bytes with an explicit content type. |
| formBody | Request.formBody fields request | Sends URL-encoded form fields. |
| expect | Request.expect statuses request | Replaces the statuses treated as success. |
| expectAny | Request.expectAny request | Treats every status as success so the caller can branch on the code explicitly. |
| render | Request.render request | Renders the redacted request line used in error transcripts. |
| plan | Request.plan request | Returns a redacted request plan without sending anything. |
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
| Name | Type | Description |
|---|---|---|
| method | Method | |
| url | string |
Returns
HttpRequest
Returns the request method. <example><code>Request.method request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
Method
Returns the real request URL without appended query parameters. <example><code>Request.url request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
string
Returns query parameters as name-value pairs. <example><code>Request.queryParameters request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
(string * string) list
Returns headers as name-value pairs. <example><code>Request.headerValues request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
(string * string) list
Returns the request body. <example><code>Request.body request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
RequestBody
Returns the per-request timeout. <example><code>Request.tryTimeout request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
TimeSpan option
Returns the success expectation. <example><code>Request.expectation request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
StatusExpectation
Appends one URL-encoded query parameter.
<example><code>request |> Request.query "page" 2</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| name | string | |
| value | obj | |
| request | HttpRequest |
Returns
HttpRequest
Appends a query parameter whose value is replaced with <c>***</c> in plans and error transcripts.
<example><code>request |> Request.secretQuery "api_key" key</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| name | string | |
| value | obj | |
| request | HttpRequest |
Returns
HttpRequest
Appends one request header.
<example><code>request |> Request.header "Accept" "application/json"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| name | string | |
| value | string | |
| request | HttpRequest |
Returns
HttpRequest
Appends a header whose value is replaced with <c>***</c> in plans and error transcripts.
<example><code>request |> Request.secretHeader "X-Api-Key" key</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| name | string | |
| value | string | |
| request | HttpRequest |
Returns
HttpRequest
Adds a bearer-token Authorization header. The token is always redacted in diagnostics.
<example><code>request |> Request.bearer token</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| token | string | |
| request | HttpRequest |
Returns
HttpRequest
Adds a basic-auth Authorization header. The credentials are always redacted in diagnostics.
<example><code>request |> Request.basicAuth user password</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| user | string | |
| password | string | |
| request | HttpRequest |
Returns
HttpRequest
Sets the Accept header. <example><code>request |> Request.accept "application/json"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| mediaType | string | |
| request | HttpRequest |
Returns
HttpRequest
Sets the Accept header to <c>application/json</c>. <example><code>request |> Request.acceptJson</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
HttpRequest
Sets the User-Agent header. <example><code>request |> Request.userAgent "axial-app/1.0"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| value | string | |
| request | HttpRequest |
Returns
HttpRequest
Sets a per-request timeout enforced by the live service.
<example><code>request |> Request.timeout (TimeSpan.FromSeconds 5.0)</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| value | TimeSpan | |
| request | HttpRequest |
Returns
HttpRequest
Sends a plain-text body. <example><code>request |> Request.textBody "hello"</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| content | string | |
| request | HttpRequest |
Returns
HttpRequest
Sends an already-serialized JSON body with the <c>application/json</c> content type.
<example><code>request |> Request.jsonBody """{"name":"Ada"}"""</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| json | string | |
| request | HttpRequest |
Returns
HttpRequest
Encodes a value with the supplied serializer and sends it as JSON.
<example><code>request |> Request.jsonBodyWith (Json.serialize codec) user</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| encode | 'value -> string | |
| value | 'value | |
| request | HttpRequest |
Returns
HttpRequest
Sends raw bytes with an explicit content type.
<example><code>request |> Request.bytesBody "application/octet-stream" payload</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| contentType | string | |
| content | byte array | |
| request | HttpRequest |
Returns
HttpRequest
Sends URL-encoded form fields. <example><code>request |> 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 |> Request.expect [ 200; 404 ]</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| statuses | int seq | |
| request | HttpRequest |
Returns
HttpRequest
Treats every status as success so the caller can branch on the code explicitly.
<example><code>request |> Request.expectAny</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
HttpRequest
Renders the redacted request line used in error transcripts.
<example><code>Request.render request</code></example>
Parameters
| Name | Type | Description |
|---|---|---|
| request | HttpRequest |
Returns
string

