[
https://issues.apache.org/jira/browse/CAMEL-12862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hari Krishnan Murthy updated CAMEL-12862:
-----------------------------------------
Summary: Unable to map/register two different entity 'types' while
configuring camel REST DSL (was: Unable to register two different entity types
while configuring camel REST DSL)
> Unable to map/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
> Priority: Major
>
> 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
> Could this be a bug or is this expected? Please advise
> 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)