Details
Description
The rest-dsl doesn't support two post() endpoints with different request body types.
restConfiguration() .component("servlet") .contextPath("/api") .bindingMode(RestBindingMode.json) ; rest("/user") .post("/employee").type(UserPojo.class) .route() .log("Name: ${body.name}") .endRest() ; rest("/country") .post("/origin").type(CountryPojo.class) .route() .log("Name: ${body.country}") .endRest() ;
Both endpoints (/api/user/employee, /api/country/origin) tries to unmarshal the post body to CountryPojo and a JsonProcessingException is thrown when a UserPojo json is sent to /user/employee.
The problem is that they share one JascksonDataFormat instance registered with name "json-jackson" and the RestDefinition.type() sets the JascksonDataFormat.unmarshalType so at the end both post() endpoints will try to unmarshal to the same class.
Attachments
Issue Links
- is related to
-
CAMEL-10551 spring-boot: make auto configured dataformats and languages prototype
- Resolved
- links to