This example demonstrates how to use SQL via JDBC along with Camel’s REST DSL to expose a RESTful API.
This example relies on the Openshift Maven plugin for its build configuration.
Important
|
This quickstart can run in 1 mode: on Kubernetes / OpenShift Cluster. Quickstart requires Java 8 or Java 11 (fuse-karaf-openshift-jdk11-rhel8 image is used to build in Java 11)
|
Important
|
You need to run this example on Container Development Kit 3.3 or OpenShift 3.7. Both of these products have suitable Fuse images pre-installed. If you run it in an environment where those images are not preinstalled follow the steps described in Running the Quickstart on a single-node Kubernetes/OpenShift cluster without preinstalled images. |
A single-node Kubernetes/OpenShift cluster provides you with access to a cloud environment that is similar to a production environment.
If you have a single-node Kubernetes/OpenShift cluster, such as Minishift or the Red Hat Container Development Kit, installed and running, you can deploy your quickstart there.
-
Download the project and extract the archive on your local filesystem.
-
Log in to your OpenShift cluster:
$ oc login -u developer -p developer
-
Create a new OpenShift project for the quickstart:
$ oc new-project MY_PROJECT_NAME
-
Change the directory to the folder that contains the extracted quickstart application (for example,
my_openshift/karaf-camel-rest-sql
) :$ cd my_openshift/karaf-camel-rest-sql
-
It is assumed that a MySQL service is already running on the platform. You can deploy it using the provided deployment by executing in single-node OpenShift cluster:
$ oc create -f mysql-deployment.yml
-
Build and deploy the project to the OpenShift cluster:
$ mvn clean -DskipTests oc:deploy -Popenshift
-
In your browser, navigate to the
MY_PROJECT_NAME
project in the OpenShift console. Wait until you can see that the pod for thekaraf-camel-rest-sql
has started up. -
On the project’s
Overview
page, navigate to the details page deployment of thekaraf-camel-rest-sql
application:https://OPENSHIFT_IP_ADDR:8443/console/project/MY_PROJECT_NAME/browse/pods/karaf-camel-rest-sql-NUMBER_OF_DEPLOYMENT?tab=details
. -
Switch to tab
Logs
and then see the messages sent by Camel.
A single-node Kubernetes/OpenShift cluster provides you with access to a cloud environment that is similar to a production environment.
If you have a single-node Kubernetes/OpenShift cluster, such as Minishift or the Red Hat Container Development Kit, installed and running, you can deploy your quickstart there.
-
Download the project and extract the archive on your local filesystem.
-
Log in to your OpenShift cluster:
$ oc login -u developer -p developer
-
Create a new OpenShift project for the quickstart:
$ oc new-project MY_PROJECT_NAME
-
Import base images in your newly created project (MY_PROJECT_NAME) according to documentation.
-
Change the directory to the folder that contains the extracted quickstart application (for example,
my_openshift/karaf-camel-rest-sql
) :$ cd my_openshift/karaf-camel-rest-sql
-
It is assumed that a MySQL service is already running on the platform. You can deploy it using the provided deployment by executing in single-node OpenShift cluster:
$ oc create -f mysql-deployment.yml
-
Build and deploy the project to the OpenShift cluster:
$ mvn clean -DskipTests oc:deploy -Popenshift -Djkube.generator.fromMode=istag -Djkube.generator.from=MY_PROJECT_NAME/fuse7-karaf-openshift:1.13
-
In your browser, navigate to the
MY_PROJECT_NAME
project in the OpenShift console. Wait until you can see that the pod for thekaraf-camel-rest-sql
has started up. -
On the project’s
Overview
page, navigate to the details page deployment of thekaraf-camel-rest-sql
application:https://OPENSHIFT_IP_ADDR:8443/console/project/MY_PROJECT_NAME/browse/pods/karaf-camel-rest-sql-NUMBER_OF_DEPLOYMENT?tab=details
. -
Switch to tab
Logs
and then see the messages sent by Camel.
When the example is running, a REST service is available to list the books that can be ordered, and as well the order statuses.
If you run the example on a single-node OpenShift cluster, then the REST service is exposed at 'http://karaf-camel-rest-sql-MY_PROJECT_NAME.OPENSHIFT_IP_ADDR.nip.io/camel-rest-sql/`.
Notice: As it depends on your OpenShift setup, the hostname (route) might vary. Verify with oc get routes
which hostname is valid for you.
The actual endpoint is using the context-path camel-rest-sql/books
and the REST service provides two services:
-
books
: to list all the available books that can be ordered, -
books/order/{id}
: to output order status for the given orderid
.
The example automatically creates new orders with a running order id
starting from 1.
You can then access these services from your Web browser, e.g.:
The example provides API documentation of the service using Swagger using the context-path camel-rest-sql/api-doc
. You can access the API documentation from your Web browser at http://karaf-camel-rest-sql-MY_PROJECT_NAME.OPENSHIFT_IP_ADDR.nip.io/camel-rest-sql/api-doc.