To answer my question, yes this works.
The JSON body is deserialized and passed on as a MyOrder object to the update() 
method.

One issue with Rest PUT/POST is that Camel will use the request body also for 
the HTTP response.
Usually this is not wanted, so best to empty the out body, e.g. with 
<setBody><simple>null</simple></setBody>

On 16.09.2017 18:34, Martin Lichtin wrote:
Camel Rest DSL

Want to ask how can one pass the body of a PUT request to a method positional 
argument.
Eg, with bindingMode=json will the magic ${body} work?

    <rest path="/order">
      <put uri="/{id}" type="MyOrder">
        <to uri="bean:orders?method=update(${header.id},${body})" />
      </put>
    </rest>

with the method in Java as

    update(String id, MyOrder myOrder)

Searched the docs (including Camel in Action, 2nd ed), but can't find an 
example anywhere.

Reply via email to