OpenAPI / Swagger
The gateway self-describes its REST API using the
OpenAPI 3.1.0 specification.
Every level of the URL hierarchy exposes a /docs endpoint that returns
a context-scoped OpenAPI spec - so tools and developers always have an
accurate, up-to-date description of available operations.
Accessing the Spec
Append /docs to any valid API path:
# Full gateway spec (all endpoints)
curl http://localhost:8080/api/v1/docs | jq .
# Spec scoped to the components collection
curl http://localhost:8080/api/v1/components/docs
# Spec for a specific component and its resource collections
curl http://localhost:8080/api/v1/components/my_sensor/docs
# Spec for one resource collection (e.g. data)
curl http://localhost:8080/api/v1/components/my_sensor/data/docs
Entity-level specs reflect the actual capabilities of each entity at runtime. Plugin-registered vendor routes also appear when the requested path matches a plugin route prefix.
Swagger UI
For an interactive API browser, build the gateway with Swagger UI support:
colcon build --cmake-args -DENABLE_SWAGGER_UI=ON
Then open http://localhost:8080/api/v1/swagger-ui in your browser.
The UI assets are embedded in the binary - no CDN dependency at runtime.
Note
The CMake configure step downloads assets from unpkg.com, so network access is required during the build.
Using with External Tools
The spec returned by /docs is standard OpenAPI and works with any
compatible tooling:
Postman - Import
http://localhost:8080/api/v1/docsas a URL to auto-generate a request collection.Client generators - Feed the spec to openapi-generator to produce typed clients in Python, TypeScript, Go, and many other languages.
Documentation - Render with Redoc or any OpenAPI-compatible doc renderer.
Configuration
The /docs endpoints are enabled by default. To disable them:
ros2_medkit_gateway:
ros__parameters:
docs:
enabled: false
When disabled, all /docs endpoints return HTTP 501.
See Server Configuration for the full parameter reference.
See Also
REST API Reference - Complete REST API reference
Server Configuration - Server configuration options