An open API service indexing awesome lists of open source software.

https://github.com/foogaro/user11-vertx-crud

Generated by launch.openshift.io
https://github.com/foogaro/user11-vertx-crud

Last synced: 3 months ago
JSON representation

Generated by launch.openshift.io

Awesome Lists containing this project

README

        

= CRUD - Eclipse Vert.x Booster

IMPORTANT: While you can run and interact with this booster on our local host, it requires that you also have a database installed and configured. This booster runs best when deployed on OpenShift with a PostgreSQL database. For more details on using this booster with a single-node OpenShift cluster, CI/CD deployments, as well as the rest of the runtime, see the link:http://appdev.openshift.io/docs/vertx-runtime.html[Eclipse Vert.x Runtime Guide].

IMPORTANT: As part of the process of creating this booster, launch.openshift.io set up a project with a CI/CD deployment of this booster. You can see the status of this deployment in your Single-node OpenShift Cluster or OpenShift Online Web Console.

== Run this Booster on a Single-node OpenShift Cluster
If you have a single-node OpenShift cluster, such as Minishift or the Red Hat Container Development Kit, link:http://appdev.openshift.io/docs/minishift-installation.html[installed and running], you can also deploy your booster there. A single-node OpenShift cluster provides you with access to a cloud environment that is similar to a production environment.

To deploy your booster to a running single-node OpenShift cluster:
[source,bash,options="nowrap",subs="attributes+"]
----
$ oc login -u developer -p developer

$ oc new-project MY_PROJECT_NAME

$ oc new-app -e POSTGRESQL_USER=luke -ePOSTGRESQL_PASSWORD=secret -ePOSTGRESQL_DATABASE=my_data openshift/postgresql-92-centos7 --name=my-database

# Wait for `my-database` application to be running.

$ mvn clean fabric8:deploy -Popenshift
----

== Interact with this Booster on a Single-node OpenShift Cluster

To interact with your booster while it's running on a Single-node OpenShift Cluster, you first need to obtain it's URL:

[source,bash,options="nowrap",subs="attributes+"]
----
$ oc get route MY_APP_NAME -o jsonpath={$.spec.host}

MY_APP_NAME-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME
----

You can use the form at your application's url or you can use the `curl` command:

.List all entries in the database
[source,bash,options="nowrap",subs="attributes+"]
----
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/fruits

[ {
"id" : 1,
"name" : "Apple",
}, {
"id" : 2,
"name" : "Orange",
}, {
"id" : 3,
"name" : "Pear",
} ]
----

.Retrieve an entry with a specific ID
[source,bash,options="nowrap",subs="attributes+"]
----
curl http://MY_APP_NAME-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/fruits/3

{
"id" : 3,
"name" : "Pear",
}
----

.Create a new entry:
[source,bash,options="nowrap",subs="attributes+"]
----
curl -H "Content-Type: application/json" -X POST -d '{"name":"apple"}' http://MY_APP_NAME-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/fruits

{
"id" : 4,
"name" : "apple",
}
----

.Update an Entry
[source,bash,options="nowrap",subs="attributes+"]
----
curl -H "Content-Type: application/json" -X PUT -d '{"name":"pineapple"}' http://MY_APP_NAME-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/fruits/1

{
"id" : 1,
"name" : "pineapple",
}
----

.Delete an Entry:
[source,bash,options="nowrap",subs="attributes+"]
----
curl -X DELETE http://MY_APP_NAME-MY_PROJECT_NAME.LOCAL_OPENSHIFT_HOSTNAME/api/fruits/1
----

NOTE: If you receive an HTTP Error code `503` as a response after executing these commands, it means that the application is not ready yet.

== More Information
You can learn more about this booster and rest of the Eclipse Vert.x runtime in the link:http://appdev.openshift.io/docs/vertx-runtime.html[Eclipse Vert.x Runtime Guide].