You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/10/18 12:46:00 UTC

[jira] [Created] (CAMEL-25762) camel-jbang - the validator learns the OpenAPI operations and the REST binding mode beside a route, so parsed data sent by rest-openapi or returned by a REST route is reported

Claus Ibsen created CAMEL-25762:
-----------------------------------

             Summary: camel-jbang - the validator learns the OpenAPI operations and the REST binding mode beside a route, so parsed data sent by rest-openapi or returned by a REST route is reported
                 Key: CAMEL-25762
                 URL: https://issues.apache.org/jira/browse/CAMEL-25762
             Project: Camel
          Issue Type: Improvement
          Components: camel-jbang, camel-yaml-dsl
            Reporter: Claus Ibsen
             Fix For: 4.24.0


The validator reports parsed data (a Map or a List from unmarshal) where a step needs text (CAMEL-24844, PR 28047): a to: file, an http producer that sends it with POST, the reply of a platform-http route. In the r17 series of the local-model benchmark, it still misses 9 of the 14 parsed-data collisions, because the facts it needs are not in the route file:

* *rest-openapi calls (6):* whether {{to: rest-openapi:stock-api.json#reserveStock}} sends the body depends on the verb of the operation, which is in the specification. The rest-openapi producer calls with that verb, whatever the headers say.
* *REST replies (3):* the body at the end of a route of a REST verb ({{rest: get: ... to: direct:x}}), or of an operation of a contract-first binding ({{rest: openApi:}} routes each operation to {{direct:<operationId>}}), is the reply. A Map there fails unless the REST binding writes it, and the binding mode can be set in application.properties ({{camel.rest.bindingMode}}), which the validator does not see.

camel-jbang already reads the specification beside a route, to tell the validator which operations carry no body (CAMEL-24844 phase B, {{OpenApiVerbs}}).

h3. Proposal

camel-jbang passes the validator the facts of the project, read from the files beside the route:
* the operations of the OpenAPI specifications the file uses (contract-first, and rest-openapi calls): the verb of each operationId;
* the REST binding mode the project's properties set (off when they set none).

The validator then reports:
* a rest-openapi call to a POST, PUT or PATCH operation that is given parsed data;
* the end of a REST route (a verb's route, or a contract-first operation's) that is parsed data.

Both only when nothing can write the data: no binding mode in the file (restConfiguration, rest, verb) or in the properties. When the facts are not known (another caller, no directory), it says nothing, as today.

_Filed by Claude Code on behalf of davsclaus_



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