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:10:00 UTC

[jira] [Updated] (CAMEL-12862) Unable to map/register two different entity 'types' while configuring camel REST DSL

     [ 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)