HTTP endpoint
YAML key: http_endpoint
Expose deterministic HTTP endpoints backed by attributes. Endpoints are served by FastAPI/uvicorn inside SPX Server.
Minimal configuration
This example is taken from spx-examples: library/domains/iot/generic/air_quality_station__http.yaml
communication:
- http_endpoint:
host: 0.0.0.0
port: 8092
response_delay: 0.0
response_jitter: 0.0
endpoints:
"/v1/air-quality/{profile}":
method: GET
alias:
- "#attr(active_profile) = #param(profile)"
response:
profile: "#attr(active_profile)"
current:
timestamp: "#attr(current_timestamp)"
pm2_5: "#attr(current_pm2_5)"
"/simulator/profile":
method: POST
alias:
- "#attr(active_profile) = #param(__body__.profile)"
response:
status: "ok"
active_profile: "#attr(active_profile)"Schema (what SPX Server actually supports)
Top-level fields under http_endpoint:
host(default:0.0.0.0)port(default:8001)response_delay/response_jitter(seconds; defaults:0.0)endpoints: mapping or list of endpoints
Per-endpoint fields:
path: required whenendpointsis a list (whenendpointsis a mapping, the key is the path)method(ortype): HTTP method(s). Accepts a string (GET) or a list ([GET, POST]). Default:GET.status_code: success status code (default:200)alias: optional list of assignments executed before rendering the response, for example:"#attr(setpoint) = #param(__body__.setpoint)"
response: any YAML structure. Strings may reference:#attr(name)— an attribute value#param(name)— a path/body parameter (see below)
http_code: optional conditions that raise non-2xx codes.
Path params and request body
Path parameters come from
{param}segments in the path (for example{profile}).For
POST/PUT/PATCH, SPX parses JSON (or falls back to raw text) and exposes it as__body__.Example:
#param(__body__.profile)reads{"profile": "..."}.
Last updated

