| == Spring Boot REST DSL / JPA Example |
| |
| === Introduction |
| |
| This example demonstrates how to use JPA and Spring Data along with |
| Camel’s REST DSL to expose a RESTful API that performs CRUD operations |
| on a database. |
| |
| It generates orders for books referenced in database at a regular pace. |
| Orders are processed asynchronously by another Camel route. Books |
| available in database as well as the status of the generated orders can |
| be retrieved via the REST API. |
| |
| It relies on Swagger to expose the API documentation of the REST |
| service. |
| |
| === Build |
| |
| You can build this example using: |
| |
| [source,sh] |
| ---- |
| $ mvn package |
| ---- |
| |
| === Run |
| |
| You can run this example with Maven using: |
| |
| [source,sh] |
| ---- |
| $ mvn spring-boot:run -Dspring.profiles.active=dev |
| ---- |
| |
| Alternatively, you can also run this example using the executable JAR: |
| |
| [source,sh] |
| ---- |
| $ java -jar -Dspring.profiles.active=dev target/camel-example-spring-boot-rest-jpa-${project.version}.jar |
| ---- |
| |
| This uses an embedded in-memory HSQLDB database. You can use the default |
| Spring Boot profile in case you have a MySQL server available for you to |
| test. |
| |
| When the Camel application runs, you should see the following messages |
| being logged to the console, e.g.: |
| |
| .... |
| 2016-09-02 09:54:29.702 INFO 27253 --- [mer://new-order] generate-order : Inserted new order 1 |
| 2016-09-02 09:54:31.597 INFO 27253 --- [mer://new-order] generate-order : Inserted new order 2 |
| 2016-09-02 09:54:33.596 INFO 27253 --- [mer://new-order] generate-order : Inserted new order 3 |
| 2016-09-02 09:54:34.637 INFO 27253 --- [rts.camel.Order] process-order : Processed order #id 1 with 7 copies of the «Camel in Action» book |
| 2016-09-02 09:54:34.641 INFO 27253 --- [rts.camel.Order] process-order : Processed order #id 2 with 4 copies of the «Camel in Action» book |
| 2016-09-02 09:54:34.645 INFO 27253 --- [rts.camel.Order] process-order : Processed order #id 3 with 1 copies of the «ActiveMQ in Action» book |
| 2016-09-02 09:54:35.597 INFO 27253 --- [mer://new-order] generate-order : Inserted new order 4 |
| 2016-09-02 09:54:37.601 INFO 27253 --- [mer://new-order] generate-order : Inserted new order 5 |
| 2016-09-02 09:54:39.605 INFO 27253 --- [mer://new-order] generate-order : Inserted new order 6 |
| 2016-09-02 09:54:39.668 INFO 27253 --- [rts.camel.Order] process-order : Processed order #id 4 with 7 copies of the «Camel in Action» book |
| 2016-09-02 09:54:39.671 INFO 27253 --- [rts.camel.Order] process-order : Processed order #id 5 with 1 copies of the «ActiveMQ in Action» book |
| 2016-09-02 09:54:39.674 INFO 27253 --- [rts.camel.Order] process-order : Processed order #id 6 with 4 copies of the «Camel in Action» book |
| .... |
| |
| You can then access the REST API directly from your Web browser, e.g.: |
| |
| * http://localhost:8080/camel-rest-jpa/books |
| * http://localhost:8080/camel-rest-jpa/books/order/1 |
| |
| The Camel application can be stopped pressing ctrl+c in the shell. |
| |
| === Swagger API |
| |
| The example provides API documentation of the service using Swagger |
| using the _context-path_ `+camel-rest-jpa/api-doc+`. You can access the |
| API documentation from your Web browser at |
| http://localhost:8080/camel-rest-jpa/api-doc. |
| |
| === Help and contributions |
| |
| If you hit any problem using Camel or have some feedback, then please |
| https://camel.apache.org/support.html[let us know]. |
| |
| We also love contributors, so |
| https://camel.apache.org/contributing.html[get involved] :-) |
| |
| The Camel riders! |