How do I import rests from other XML files?
Available as of Camel 2.14
When defining rests in Camel using Xml Configuration you may want to define some rests in other XML files. For example you may have many rest services and it may help to maintain the application if some of the rests are in separate XML files. You may also want to store common and reusable rests in other XML files, which you can simply import when needed.
This is possible to define rests outside
<camelContext/> which you do in a new
When you use
For example we could have a file named
myCoolRests.xml which contains a rest (can have more) as shown:
<restContext id="myCoolRest" xmlns="http://camel.apache.org/schema/spring"> <rest uri="/say/hello"> <get> <to uri="direct:hello"/> </get> </rest> </restContext>
Then in your XML file which contains the CamelContext you can use Spring to import the
myCoolRests.xml file. And then inside
<camelContext/> you can refer to the
<restContext/> using the
<restContextRef> by its id as shown below:
<camelContext xmlns="http://camel.apache.org/schema/spring"> <restContextRef ref="myCoolRest"/> <rest uri="/say/bye"> <get consumes="application/json"> <to uri="direct:bye"/> </get> <post> <to uri="mock:update"/> </post> </rest> <route> <from uri="direct:hello"/> <transform> <constant>Hello World</constant> </transform> </route> <route> <from uri="direct:bye"/> <transform> <constant>Bye World</constant> </transform> </route> </camelContext>
Also notice that you can mix and match, having rests inside CamelContext and also externalized in RestContext.
You can have as many
<restContextRef/> as you like.
The rests defined in