HTTPIn
Overview
The HTTPIn operator provides a way to dispatch graphs using an HTTP endpoint.
It supports standard HTTP protocol, including WebSockets and Server-Side Events.
Examples
Hello World
Config
name: hello-world
nodes:
- id: start
operator: HTTPIn
method: ^(GET)$
routes:
- /hello
- id: translate
operator: MessageTranslator
mode: json
template: |
{
"message": "Hello World!"
}
edges:
- { from: start, to: translate }Request
curl -v http://localhost:2243/helloResponse
{"message":"Hello World!"}Server-Side Events
name: sse-timer
nodes:
- id: start
operator: HTTPIn
sse: true
method: ^(GET)$
routes:
- /sse-timer
- id: timer
operator: Timer
interval_ms: 500
iterations: 5
on_start: false
- id: translate
operator: MessageTranslator
mode: json
template: |
{
"sse": "stuff",
"data": data,
"_ts": now()
}
edges:
- { from: start, to: timer }
- { from: timer, to: translate }
Websockets
name: ws
nodes:
- id: start
operator: HTTPIn
ws: true
method: ^(ANY)$
routes:
- /ws
- id: b2j
operator: BufferToJSON
- id: translate
operator: MessageTranslator
mode: json
template: |
{
"temp": temp,
"resource": input.resource,
"data": data
}
- id: j2b
operator: JSONToBuffer
edges:
- { from: start, to: b2j }
- { from: b2j, to: translate }
- { from: translate, to: j2b }Configuration Reference
name
Must be 'HTTPIn'
Stringrequiredengine
What implementation is used.
axumoptionalDefault: "axum"ws
Whether to upgrade to websocket connection.
BooleanoptionalDefault: "false"sse
Whether to start a Server Side Event stream.
BooleanoptionalDefault: "false"routes
List of routes in a format for the particular engine.
Vec<String>requiredmethod
A regular-expression of valid Methods.
Stringrequired