You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Hari Krishnan Murthy (JIRA)" <ji...@apache.org> on 2018/10/08 02:09:00 UTC
[jira] [Created] (CAMEL-12862) Unable to register two different
entity types while configuring camel REST DSL
Hari Krishnan Murthy created CAMEL-12862:
--------------------------------------------
Summary: Unable to register two different entity types while configuring camel REST DSL
Key: CAMEL-12862
URL: https://issues.apache.org/jira/browse/CAMEL-12862
Project: Camel
Issue Type: Bug
Reporter: Hari Krishnan Murthy
While configuring routes for POST/PUT using REST DSL, I have issues in mapping/registering two entity classes at the same time.
For eg:
rest("/xxx/yyy").description("REST service")
.produces("application/json")
//Get all Interactions
.get().description("Get all interactions").outType(GetInteractionsResponse.class)
.param().name("session_id").type(header).description("Session ID").dataType("string").endParam()
.to("direct:getAllInteraction")
//Get specific Interaction
.get("/\{id}").description("Get Interaction by Interaction ID").outType(GetInteractionResponse.class)
.param().name("session_id").type(header).description("Session ID").dataType("string").endParam()
.param().name("id").type(path).description("Interaction ID").dataType("integer").endParam()
.to("direct:getInteractionById")
//Update an interaction
.put("/\{id}").description("Update an Interaction by Interaction ID").consumes("application/json").type(PutInteraction.class)
.param().name("session_id").type(header).description("Session ID").dataType("string").endParam()
.param().name("id").type(path).description("Interaction ID").dataType("integer").endParam()
.param().name("body").type(body).description("Interaction to be posted").endParam()
.to("direct:putInteraction")
//Post a new interaction
.post().description("Post an Interaction").consumes("application/json").type(PostInteraction.class)
.param().name("session_id").type(header).description("Session ID").dataType("string").endParam()
.param().name("body").type(body).description("Interaction to be posted").endParam()
.to("direct:postInteraction");
Upon deploying and executing the above routes, either the POST or PUT entities(PostInteraction/PutInteraction) passed in the request body as JSON are received as null on the server side(Rest Service that am invoking). This depends on whichever is defined the last. If the POST API is defined as the last route, then put entity is null and vice versa. I have tried to validate this behaviour multiple times by switching the order of definition. Right now am circumventing this issue by creating a new common pojo and mapping it for both POST and PUT
Technology used:
spring-boot-starter-parent: 1.5.1-RELEASE
camel-spring-boot-starter: 2.18.0
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)