Claus Ibsen created CAMEL-24125:
-----------------------------------

             Summary: camel-console - Expose dev console API contract via 
OpenAPI spec at /q/dev/api
                 Key: CAMEL-24125
                 URL: https://issues.apache.org/jira/browse/CAMEL-24125
             Project: Camel
          Issue Type: Improvement
            Reporter: Claus Ibsen


When using Camel JBang in dev mode, the dev consoles are available at /q/dev/ 
endpoints. Currently, to discover the available parameters, types, enums, and 
defaults for each console, you need to look at the source code.

Since we now support POST (JSON body) on dev console endpoints, and we already 
have rich generated metadata for every console (parameter name, type, enum 
values, default value, required flag, description), we can expose this as an 
OpenAPI specification at /q/dev/api.

The approach:
- Add a new /q/dev/api endpoint in ManagementHttpServer that generates an 
OpenAPI 3.0 spec
- For each registered dev console, generate:
  - GET /q/dev/{id} with query parameters from the console metadata
  - POST /q/dev/{id} with a JSON request body schema from the same parameters
  - The index listing GET /q/dev
- Type mapping from console metadata: string, integer, boolean, enum constraints
- The spec is dynamic - reflects whichever consoles are actually loaded at 
runtime (including component-specific ones like Kafka, OpenTelemetry, etc.)
- Console metadata is already available at runtime via 
CatalogCamelContext.getDevConsoleParameterJsonSchema()

This would make the dev console API self-documenting and allow tools, IDEs, and 
AI agents to discover and use the API without reading source code.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to