Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Spring Boot Example with Camel REST DSL and Platform HTTP

Introduction

This example illustrates how to use Spring Boot with Camel. It provides a simple REST service that is created with Camel REST DSL and platform-http.

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-starter component as the implementation for platform-http-engine.

Build

You can build this example using:

mvn package

Run

You can run this example using:

mvn spring-boot:run

You should see the following output when the application is launched (timestamp removed for simplicity):

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.4.5)

o.a.c.example.springboot.Application     : Starting Application using Java 17.0.15 with PID 3707237
o.a.c.example.springboot.Application     : No active profile set, falling back to 1 default profile: "default"
o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
o.apache.catalina.core.StandardService   : Starting service [Tomcat]
o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.40]
o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 451 ms
o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 4.23.0-SNAPSHOT (MyCamel) is starting
o.a.c.impl.engine.AbstractCamelContext   : Routes startup (total:6 rest-dsl:6)
o.a.c.impl.engine.AbstractCamelContext   :     Started route1 (rest://get:/todos)
o.a.c.impl.engine.AbstractCamelContext   :     Started route2 (rest://get:/todos:/%7Bid%7D)
o.a.c.impl.engine.AbstractCamelContext   :     Started route3 (rest://patch:/todos:/%7Bid%7D)
o.a.c.impl.engine.AbstractCamelContext   :     Started route4 (rest://post:/todos)
o.a.c.impl.engine.AbstractCamelContext   :     Started route5 (rest://delete:/todos)
o.a.c.impl.engine.AbstractCamelContext   :     Started route6 (rest://delete:/todos:/%7Bid%7D)
o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 4.23.0-SNAPSHOT (MyCamel) started in 8ms (build:0ms init:0ms start:8ms boot:428ms)
o.a.c.example.springboot.Application     : Started Application in 1.155 seconds (process running for 1.283)

After the Spring Boot application is started, you can execute the following HTTP requests:

Create a TODO

curl -d '{"title":"Todo title", "completed":"false", "order": 1, "url":""}' -H "Content-Type: application/json" -X POST http://localhost:8080/todos

The command will produce the following output:

{"id":1,"title":"Todo title","completed":false,"order":1,"url":""}

Retrieve all TODOs

curl http://localhost:8080/todos

The command will produce the following output:

[{"id":1,"title":"Todo title","completed":false,"order":1,"url":""}]

Update one TODO

curl -d '{"title":"Todo title", "completed":"true", "order": 1, "url":""}' -H "Content-Type: application/json" -X PATCH http://localhost:8080/todos/1

The command will produce the following output:

{"id":1,"title":"Todo title","completed":true,"order":1,"url":""}

Delete completed TODOs

curl -X "DELETE" http://localhost:8080/todos

The command will produce the following output:

1

The Spring Boot application can be stopped pressing [CTRL] + [C] in the shell.

Help and contributions

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!