Skip to Content

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/hello

Response

{"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'

Stringrequired

engine

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>required

method

A regular-expression of valid Methods.

Stringrequired