MonitorControl.Web exposes OpenAPI 3 at /swagger/v1/swagger.json when the app is running. The repository also commits the same document as openapi/monitorcontrol.openapi.json so CI, reviewers, and codegen pipelines can consume a frozen spec without starting ASP.NET. See openapi/README.md.
You can feed that document to OpenAPI Generator to emit a libcurl-based C client, Java, Python, TypeScript, etc., instead of hand-rolling JSON bodies (as in the Arduino HTTP knob example).
For local experiments, open the JSON directly:
openapi-generator-cli generate \
-i openapi/monitorcontrol.openapi.json \
-g c \
-o generated/openapi-cWhen you change routes or DTOs, regenerate the committed file from the repository root (bash):
bash scripts/fetch-openapi.shThis starts the web host briefly, overwrites openapi/monitorcontrol.openapi.json, then exits. Commit the updated JSON with your API change.
Override the ephemeral port if needed:
PORT=56000 bash scripts/fetch-openapi.shRequires Docker:
bash scripts/generate-c-client.shOutput defaults to generated/openapi-c/ (gitignored). The C generator emits libcurl calls, structs, and JSON helpers suitable for desktop or embedded Linux — not for AVR. For ESP32, generated C is often too heavy; prefer keeping JSON minimal on the MCU or calling the HTTP API from a co-processor.
Install OpenAPI Generator CLI locally, then:
openapi-generator-cli generate \
-i openapi/monitorcontrol.openapi.json \
-g c \
-o generated/openapi-cThere is no first-party vendor generator for Wiring. Practical options:
- HTTP + hand-built JSON (this repo’s sketches) — smallest flash footprint.
- ArduinoJson + thin wrappers around
POST /api/vmc/setbodies shaped like the OpenAPIVmcSetBodyschema (derive field names from Swagger). - OpenAPI Generator
cpp-qt5-clientorjavafor an Android sidecar — if the product already ships a richer runtime.
Re-run fetch-openapi.sh after API changes so downstream codegen stays in sync.
- Web API guide — route list including SSE and WebSocket push.
- Live spec:
http://<host>:<port>/swagger/v1/swagger.json