This example illustrates how to use Spring Boot with Camel. It provides a simple REST service that is created with Camel REST DSL and documented with OpenApi.
The project uses the camel-spring-boot-starter
dependency, a Spring Boot starter dependency for Camel that simplifies the Maven configuration.
The project also uses camel-servlet
component as the HTTP transport component for Camel REST DSL.
You can run this example using:
$ mvn spring-boot:run
You should see the following output when the application is launched:
...
[INFO] --- spring-boot-maven-plugin:1.5.10.RELEASE:run (default-cli) @ camel-example-spring-boot-rest-openapi ---
[...]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.0.RELEASE)
[...]
2017-03-05 14:55:44.032 INFO 15312 --- [ main] o.a.camel.spring.SpringCamelContext : Total 4 routes, of which 4 are started.
2017-03-05 14:55:44.034 INFO 15312 --- [ main] o.a.camel.spring.SpringCamelContext : Apache Camel 2.22.0-SNAPSHOT (CamelContext: camel-1) started in 0.614 seconds
2017-03-05 14:55:44.131 INFO 15312 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-03-05 14:55:44.140 INFO 15312 --- [ main] o.a.c.example.springboot.Application : Started Application in 6.265 seconds (JVM running for 21.092)
After the Spring Boot application is started, you can open the following URL in your web browser to access the REST endpoint and retrieve a list of users: http://localhost:8080/api/users
You can also access the REST endpoint from the command line:
$ curl http://localhost:8080/api/users
The command will produce the following output:
[ {
"id" : 1,
"name" : "John Coltrane"
}, {
"id" : 2,
"name" : "Miles Davis"
}, {
"id" : 3,
"name" : "Sonny Rollins"
} ]
The OpenApi documentation is located at: http://localhost:8080/api/api-doc
and can be retrieved with the following command:
$ curl http://localhost:8080/api/api-doc
The Spring Boot application can be stopped pressing [CTRL] + [C]
in the shell.
The actuator is available at: http://localhost:8080/actuator/
such as metrics for Prometheus: http://localhost:8080/actuator/prometheus
.
If you hit any problem using Camel or have some feedback, then please let us know.
We also love contributors, so get involved :-)
The Camel riders!