This is a simple REST service example using Togglz. Togglz is an implementation of Martin Fowler's Feature Toggles pattern for Java.
If you are interested in knowing more about this project, you can find it in my blog 'Togglz Integration with REST'.
Execute the following command from the parent directory to compile the project:
mvn clean install
Once the build completes successfully, you should have the artifact togglz-rest-helloworld.war
in the target
folder.
You can deploy the togglz-rest-helloworld.war
in a Tomcat web container or any other JEE web
container of your choice.
You can test it using RESTClient or Postman. This project has been tested using RESTClient. To test follow the steps below:
- Download WizTools.org RESTClient.
- Start REST Client: java -jar restclient-ui-3.4-jar-with-dependencies.jar
URL: http://localhost:8080/togglz-rest-helloworld/customers/1
HTTP Method: GET
Header: Accept: application/json
Expected Response Body:
{
"id" : 1,
"firstName" : "Robert",
"lastName" : "Land",
"address" : {
"street" : "2486 Maxwell Farm Road",
"city" : "Waynesboro",
"state" : "VA",
"zipCode" : "22980"
}
}
URL: http://localhost:8080/togglz-rest-helloworld/customers
HTTP Method: POST
Header:
Content-Type: application/json
Accept: application/json
Request Body:
{
"firstName" : "John",
"lastName" : "Doe",
"address" : {
"street" : "123 Nowhere Street",
"city" : "Notown",
"state" : "MA",
"zipCode" : "02456"
}
}
Expected Response Body:
{
"id" : 4,
"firstName" : "John",
"lastName" : "Doe",
"address" : {
"street" : "123 Nowhere Street",
"city" : "Notown",
"state" : "MA",
"zipCode" : "02456"
}
}
URL: http://localhost:8080/togglz-rest-helloworld/customers/4
HTTP Method: POST
Header:
Content-Type: application/json
Accept: application/json
Expected Response Body:
{
"id" : 4,
"firstName" : "John",
"lastName" : "Doe",
"address" : {
"street" : "123 Nowhere Street",
"city" : "Notown",
"state" : "MA",
"zipCode" : "02456"
}
}
URL: http://localhost:8080/togglz-rest-helloworld/customers/1
HTTP Method: PUT
Header:
Content-Type: application/json
Accept: application/json
Request Body:
{
"firstName" : "Robert",
"lastName" : "Redford",
"address" : {
"street" : "2486 Maxwell Farm Road",
"city" : "Waynesboro",
"state" : "VA",
"zipCode" : "22980"
}
}
Expected Response Body:
{
"id" : 1,
"firstName" : "Robert",
"lastName" : "Redford",
"address" : {
"street" : "2486 Maxwell Farm Road",
"city" : "Waynesboro",
"state" : "VA",
"zipCode" : "22980"
}
}
URL: http://localhost:8080/togglz-rest-helloworld/customers/1 HTTP Method: PUT Header: Content-Type: application/json Accept: application/json Request Body:
{
"firstName" : "John"
}
Expected Response Body:
{
"id" : 1,
"firstName" : "Robert",
"lastName" : "Redford",
"address" : {
"street" : "2486 Maxwell Farm Road",
"city" : "Waynesboro",
"state" : "VA",
"zipCode" : "22980"
}
}
URL: http://localhost:8080/tooglz-rest-helloworld/togglz