blob: 9c3db1a7d00f245f81818471ae82d41b19231402 [file] [log] [blame]
# Spring Boot Example with Camel REST DSL, Geocoder and Swagger
### Introduction
This example illustrates how to use https://projects.spring.io/spring-boot/[Spring Boot] with http://camel.apache.org[Camel]. It provides a simple REST service that is created with http://camel.apache.org/rest-dsl.html[Camel REST DSL], using the http://camel.apache.org/geocoder.html[Geocoder component] and documented with http://swagger.io[Swagger].
The project uses the `camel-spring-boot-starter` and `camel-geocoder-starter` dependencies as Spring Boot starter dependencies for Camel that simplify the Maven configuration.
The project was based on it's `camel-example-spring-boot-rest-swagger` sibling.
### 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:
----
[...]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.0.RELEASE)
[...]
2018-03-30 16:28:56.354 INFO 29880 --- [ main] o.a.c.e.springboot.geocoder.Application : Started Application in 4.806 seconds (JVM running for 5.435)
----
After the Spring Boot application is started, you can open the following URL in your web browser to access the REST endpoint and request the address for "Paris": http://localhost:8080/camel/geocoder/?address=Paris
You can also access the REST endpoint from the command line:
$ curl http://localhost:8080/camel/geocoder/?address=Paris
You'll need to setup the google Maps API credentials to make this example work.
The command will produce the following output:
----
{
"status" : "OK",
"results" : [ {
"types" : [ "locality", "political" ],
"formattedAddress" : "Paris, France",
"addressComponents" : [ {
"longName" : "Paris",
"shortName" : "Paris",
"types" : [ "locality", "political" ]
}, {
"longName" : "Paris",
"shortName" : "Paris",
"types" : [ "administrative_area_level_2", "political" ]
}, {
"longName" : "Île-de-France",
"shortName" : "Île-de-France",
"types" : [ "administrative_area_level_1", "political" ]
}, {
"longName" : "France",
"shortName" : "FR",
"types" : [ "country", "political" ]
} ],
"geometry" : {
"location" : {
"lat" : 48.856614,
"lng" : 2.3522219
},
"locationType" : "APPROXIMATE",
"viewport" : {
"southwest" : {
"lat" : 48.815573,
"lng" : 2.225193
},
"northeast" : {
"lat" : 48.9021449,
"lng" : 2.4699208
}
},
"bounds" : {
"southwest" : {
"lat" : 48.815573,
"lng" : 2.224199
},
"northeast" : {
"lat" : 48.9021449,
"lng" : 2.4699208
}
}
},
"partialMatch" : false
} ]
}
----
The Swagger documentation is located at: http://localhost:8080/camel/api-doc and can be retrieved with the following command:
$ curl http://localhost:8080/camel/api-doc
The Spring Boot application can be stopped pressing `[CTRL]`+`[C]` in the shell.
### Help
If you hit any problems please let us know on the http://camel.apache.org/discussion-forums.html[Camel Forums].
Please help us make Apache Camel better - we appreciate any feedback you may have. Enjoy!
The Camel riders!