docs-v2/content/flux/v0/stdlib/http/endpoint.md

89 lines
2.2 KiB
Markdown

---
title: http.endpoint() function
description: >
`http.endpoint()` iterates over input data and sends a single POST request per input row to
a specified URL.
menu:
flux_v0_ref:
name: http.endpoint
parent: http
identifier: http/endpoint
weight: 101
flux/v0/tags: [notification endpoints]
---
<!------------------------------------------------------------------------------
IMPORTANT: This page was generated from comments in the Flux source code. Any
edits made directly to this page will be overwritten the next time the
documentation is generated.
To make updates to this documentation, update the function comments above the
function definition in the Flux source code:
https://github.com/influxdata/flux/blob/master/stdlib/http/http.flux#L155-L170
Contributing to Flux: https://github.com/influxdata/flux#contributing
Fluxdoc syntax: https://github.com/influxdata/flux/blob/master/docs/fluxdoc.md
------------------------------------------------------------------------------->
`http.endpoint()` iterates over input data and sends a single POST request per input row to
a specified URL.
This function is designed to be used with `monitor.notify()`.
`http.endpoint()` outputs a function that requires a `mapFn` parameter.
`mapFn` is the function that builds the record used to generate the POST request.
It accepts a table row (`r`) and returns a record that must include the
following properties:
- `headers`
- `data`
_For information about properties, see `http.post`._
##### Function type signature
```js
(
url: string,
) => (mapFn: (r: A) => {B with headers: C, data: bytes}) => (<-tables: stream[A]) => stream[{A with _sent: string}] where C: Record
```
{{% caption %}}
For more information, see [Function type signatures](/flux/v0/function-type-signatures/).
{{% /caption %}}
## Parameters
### url
({{< req >}})
URL to send the POST request to.
## Examples
### Send an HTTP POST request for each row
```js
import "http"
import "sampledata"
endpoint =
http.endpoint(url: "http://example.com/")(
mapfn: (r) =>
({
headers: {header1: "example1", header2: "example2"},
data: bytes(v: "The value is ${r._value}"),
}),
)
sampledata.int()
|> endpoint()
```