{"id":22611230,"url":"https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example","last_synced_at":"2026-05-02T14:34:16.951Z","repository":{"id":81112737,"uuid":"127773987","full_name":"bzdgn/simple-grizzly-standalone-restful-webservice-example","owner":"bzdgn","description":"A simple Grizzly standalone RESTful webservice application with Configuration Manager Implementation and Dummy Cache Repository","archived":false,"fork":false,"pushed_at":"2018-04-02T23:46:55.000Z","size":315,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-03T09:47:47.267Z","etag":null,"topics":["configuration","configuration-file","configuration-files","configuration-management","grizzly","grizzly-project","java","log4j","postman","postman-example","rest","rest-api","restful","restful-api","restful-webservices","standalone","standalone-server"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bzdgn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-02T15:20:38.000Z","updated_at":"2020-07-10T11:39:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"f24aa749-b9cd-4259-90a8-b289816ed7f3","html_url":"https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdgn%2Fsimple-grizzly-standalone-restful-webservice-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdgn%2Fsimple-grizzly-standalone-restful-webservice-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdgn%2Fsimple-grizzly-standalone-restful-webservice-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bzdgn%2Fsimple-grizzly-standalone-restful-webservice-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bzdgn","download_url":"https://codeload.github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246112659,"owners_count":20725302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration","configuration-file","configuration-files","configuration-management","grizzly","grizzly-project","java","log4j","postman","postman-example","rest","rest-api","restful","restful-api","restful-webservices","standalone","standalone-server"],"created_at":"2024-12-08T16:09:52.161Z","updated_at":"2026-05-02T14:34:16.902Z","avatar_url":"https://github.com/bzdgn.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Simple Grizzly Standalone Restful Webservice Example\n====================================================\nThis project is a demonstration and example for a standalone grizzly RESTful webservice application.\nIt is a customer-api that you can apply the basic CRUD operations. For the 'customer' model, \na simple POJO with dot-notation is introduced. An interface Repository is used to generalize\nand set a contract for any arbitrary Repository Implementation to be used in the project.\nA simple static ArrayList is used in the Cache Repository Implementation but you can use\nany arbitrary repository implementing the interface contract like Database Implementation,\nFile Implementation, Socket Implementation and so on.\n\nI've used a Configuration Manager, which that I've previously implemented and also you can check\n[github repository](https://github.com/bzdgn/singleton-configuration-manager-example/blob/master/README.md). I've explained the Configuration Manager on the independent repository\nin detail.\n\nTo demonstrate the Front Controller, I've created a [CustomerController class](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/controller/impl/CustomerController.java) and applied basic\nHTTP Methods like GET (for single and collection retrieve), POST (for create), PUT (for update) \nand DELETE (for delete).\n\nTOC\n---\n- [1 Entry Point](#1-entry-point) \u003cbr/\u003e\n- [2 Repository](#2-repository) \u003cbr/\u003e\n- [3 Using Config Manager](#3-using-config-manager) \u003cbr/\u003e\n- [4 Logging](#4-logging) \u003cbr/\u003e\n- [5 Testing And Incoming Outgoing JSON Samples](#5-testing-and-incoming-outgoing-json-samples) \u003cbr/\u003e\n  * [5-a- Test Web Service](#5-a-test-web-service) \u003cbr/\u003e\n  * [5-b- Retrieve All Customer Collection](#5-b-retrieve-all-customer-collection) \u003cbr/\u003e\n  * [5-c- Retrieve Customer](#5-c-retrieve-customer) \u003cbr/\u003e\n  * [5-d- Create Customer](#5-d-create-customer) \u003cbr/\u003e\n  * [5-e- Update Customer](#5-e-update-customer) \u003cbr/\u003e\n  * [5-f- Delete Customer](#5-f-delete-customer) \u003cbr/\u003e\n\n1 Entry Point\n--------------\nStarting grizzly standalone web server is quite easy. First you have to create a simple instance of\nServer that which you configure the controller packages and the URI of your server. You can check\nout the [Server](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/main/Server.java) class and the [EntryPoint](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/main/EntryPoint.java), it's pretty straight forward.\n\nJust in case, note that I've used [ConfigManager](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/configuration/ConfigManager.java) class in the [Server](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/main/Server.java) class so that instead of hardcoding\nthe Endpoint URI, I grab the endpoint from the properties file via the [ConfigManager class](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/configuration/ConfigManager.java).\n\nThere are two main straight-forward classes that you have to understand how an HTTP Server initialized;\n\n1. [Server class](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/main/Server.java)\n2. [EntryPoint class](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/main/EntryPoint.java)\n\n[Go back to TOC](#toc)\n\n2 Repository\n-------------\nAny repository implementation regardless of the storage (File, Socket, Database) must have the following basic operations;\n\n1. ```T find(long id)```\n2. ```List\u003cT\u003e findAll()```\n3. ```T create(T t)```\n4. ```boolean update(T t)```\n5. ```boolean delete(long id)```\n\nThus, I've created a simple interface named as [BaseRepository](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/repository/BaseRepository.java) which is as follows;\n\n```\npublic interface BaseRepository\u003cT\u003e {\n\t\n\tT find(long id) throws Exception;\n\tList\u003cT\u003e findAll() throws Exception;\n\tT create(T t) throws Exception;\n\tboolean update(T t) throws Exception;\n\tboolean delete(long id) throws Exception;\n\t\n}\n```\n\nThe [CustomerRepository](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/repository/CustomerRepository.java) interface, like all arbitrary repositories, extends this interface. Because that the interface\nis using generics, any model class can be used for any arbitrary implementation. So In order to create a specific interface\nfor any arbitrary model;\n\n1. Create the interface which extends the [BaseRepository](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/repository/BaseRepository.java) (eg: [CustomerRepository](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/repository/CustomerRepository.java))\n2. Implement the specific interface (eg: [CustomerRepositoryCacheImpl](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/src/main/java/com/levent/webservice/repository/impl/CustomerRepositoryCacheImpl.java))\n\n[Go back to TOC](#toc)\n\n3 Using Config Manager\n-----------------------\nThe configuration must always abstracted via a properties file. But in order to do so, the property file(s)\nmust be read via a configuration manager. I've created my own configuration manager and actually it is a\nsimple example of [Gang Of Four Singleton Design Pattern](https://en.wikipedia.org/wiki/Singleton_pattern).\n\nIf you want to understand the Config Manager in detail, you can check out my [Config Manager Repository](https://github.com/bzdgn/singleton-configuration-manager-example).\n\nConfig Manager is easy to use. It assumes either you are using an environmental variable to store the properties\nfile including log4j properties file, or config files are located on the working directory. It's always\na good practice to define an environmental variable so that the portability of the configuration will\nbecome easier.\n\nTo use ConfigManager with an environmental variable\n\n1. Set up an environmental variable and point it to a directory\n2. Put your properties file and your log4j properties file on the defined directory\n3. Define the configuration parameter in your ConfigManager class\n\nThat's all. Then you can get your configuration parameters easily from any class file.\n\nTo set up the environmental variable in windows, simply follow these steps;\n\n1. Follow the following steps and define your enrivonmental variable;\n![environmental-variable-setup-up-in-windows](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/ENV_VAR_01.PNG)\n\n2. Put your properties file as below in the designated folder in the environmental variable;\n![properties-files](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/ENV_VAR_02.PNG)\n\nAnd how do we define the name of the environmental variable and name of the properties file. We can not define\nit in another properties file and it will be nonsense. That's why I've hardcoded the name of the properties file\nin the ConfigManager. Environmental Variable is set to \"CUSTOMER_API_CONFIG\" by default, and also the properties\nfile set to \"customer_api.properties\" by default. \n\nIf you want to change these two hardcoded names, you can set them in the static inner Config class which\nis in the ConfigManager. The following code part is where the two hardcoded names are set;\n\n```\nprivate static class Config {\n\t\n\tprivate static final String \t\t\tENVIRONMENT_VAR_NAME\t= \"CUSTOMER_API_CONFIG\";\n\tpublic static final String \t\t\t\tCONFIG_FILE_NAME \t\t= \"customer_api.properties\";\n\tprivate static final String \t\t\tRESOURCE_DIR;\n\tprivate Properties\n```\n\nLastly, I've put a sample customer_api.properties file on the top level folder. The location of the rolling log file\nis defined there. You can check out the config snippet down below;\n\n```\nendpoint_uri=http://0.0.0.0:8080\n```\n\n[Go back to TOC](#toc)\n\n4 Logging\n----------\nThe project uses Apache Log4J. If you want to change the version, simply you can modify it on the [POM file](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/pom.xml).\nLog4J also needs to find it's properties file, which is also defined inside the ConfigManager.\n\nFor the simplicity, I've set it to the same folder we use for the config files. Check out the\ncode snippet taken from ConfigManager;\n\n```\n\tprivate ConfigManager() {\n\t\tConfig config = new Config(Config.CONFIG_FILE_NAME);\n\t\t\n\t\t// RESOURCE AND LOG\n\t\tRESOURCE_DIRECTORY\t\t\t= Config.RESOURCE_DIR;\n\t\tLOG4J_PROPERTIES\t\t\t= RESOURCE_DIRECTORY + \"/log4j.properties\";\n\t\t\n\t\tENDPOINT_URI\t\t\t\t= config.getProperty(\"endpoint_uri\");\n\t}\n```\n\nBut if you want to define it configurable, simply create a new variable in the ConfigManager class\nso that you can configure it via the configuration file.\n\nI've put a sample logj4.properties file on the top level folder. The location of the rolling log file\nis defined there. You can check out the config snippet down below;\n\n```\n#Set your target folder configuration in here\nlog4j.appender.rollingfile.File=D:/CONFIG_BASE/application.log\n```\n\n\n[Go back to TOC](#toc)\n\n5 Testing And Incoming Outgoing JSON Samples\n---------------------------------------------\n\n5-a Test Web Service\n--------------------\n\nMethod:          GET \u003cbr/\u003e\nTool:            Web Browser \u003cbr/\u003e\nLink:            http://localhost:8080/customer-api/test \u003cbr/\u003e\nResponse Format: \"text/plain\" \u003cbr/\u003e\nResponse Output;\n```\ncustomer-api is working.\n```\n\nSample Capture;\n\n![capture-for-test](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/01_TEST.PNG)\n\n[Go back to Section 5](#5-testing-and-incoming-outgoing-json-samples) \u003cbr/\u003e\n[Go back to TOC](#toc)\n\n\n\n5-b Retrieve All Customer Collection\n------------------------------------\n\nMethod:          GET \u003cbr/\u003e\nTool:            Web Browser \u003cbr/\u003e\nLink:            http://localhost:8080/customer-api/customers \u003cbr/\u003e\nResponse Format: \"application/json\" \u003cbr/\u003e\nResponse Output;\n```\n{\n\t\"data\": {\n\t\t\"customers\": [{\n\t\t\t\"age\": 31,\n\t\t\t\"firstName\": \"Levent\",\n\t\t\t\"id\": 1,\n\t\t\t\"lastName\": \"Divilioglu\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 44,\n\t\t\t\"firstName\": \"John\",\n\t\t\t\"id\": 2,\n\t\t\t\"lastName\": \"Doe\",\n\t\t\t\"regular\": false\n\t\t},\n\t\t{\n\t\t\t\"age\": 24,\n\t\t\t\"firstName\": \"Jane\",\n\t\t\t\"id\": 3,\n\t\t\t\"lastName\": \"Doe\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 66,\n\t\t\t\"firstName\": \"Fawn\",\n\t\t\t\"id\": 4,\n\t\t\t\"lastName\": \"Smith\",\n\t\t\t\"regular\": false\n\t\t}]\n\t},\n\t\"meta\": {\n\t\t\"successful\": true\n\t}\n}\n```\n\nSample Capture;\n\n![capture-for-retrieve-all](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/02_RETRIEVE_ALL_CUSTOMERS.PNG)\n\n[Go back to Section 5](#5-testing-and-incoming-outgoing-json-samples) \u003cbr/\u003e\n[Go back to TOC](#toc) \u003cbr/\u003e\n\n\n\n5-c Retrieve Customer\n---------------------\n\nMethod:          GET \u003cbr/\u003e\nTool:            Web Browser \u003cbr/\u003e\nLink:            http://localhost:8080/customer-api/customers/1 \u003cbr/\u003e\nResponse Format: \"application/json\" \u003cbr/\u003e\nResponse Output;\n\n```\n{\n\t\"data\": {\n\t\t\"customers\": [{\n\t\t\t\"age\": 31,\n\t\t\t\"firstName\": \"Levent\",\n\t\t\t\"id\": 1,\n\t\t\t\"lastName\": \"Divilioglu\",\n\t\t\t\"regular\": true\n\t\t}]\n\t},\n\t\"meta\": {\n\t\t\"successful\": true\n\t}\n}\n```\n\nSample Capture;\n\n![capture-for-retrieve-single-customer](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/03_RETRIEVE_SINGLE_CUSTOMER.PNG)\n\n[Go back to Section 5](#5-testing-and-incoming-outgoing-json-samples) \u003cbr/\u003e\n[Go back to TOC](#toc) \u003cbr/\u003e\n\n\n\n5-d Create Customer\n-------------------\n\nMethod:          POST \u003cbr/\u003e\nTool:            Postman \u003cbr/\u003e\nLink:            http://localhost:8080/customer-api/customers \u003cbr/\u003e\nConsume  Format: \"application/json\" \u003cbr/\u003e\nResponse Format: \"application/json\" \u003cbr/\u003e\nRequest Input;\n```\n{\n    \"age\": 99,\n    \"firstName\": \"Bob\",\n    \"id\": 12345,\n    \"lastName\": \"Immortal\",\n    \"regular\": true\n}\n```\n\nResponse Output;\n```\n{\n    \"data\": {\n        \"customers\": [\n            {\n                \"age\": 99,\n                \"firstName\": \"Bob\",\n                \"id\": 12345,\n                \"lastName\": \"Immortal\",\n                \"regular\": true\n            }\n        ]\n    },\n    \"meta\": {\n        \"successful\": true\n    }\n}\n```\n\nFinal Collection;\n```\n{\n\t\"data\": {\n\t\t\"customers\": [{\n\t\t\t\"age\": 31,\n\t\t\t\"firstName\": \"Levent\",\n\t\t\t\"id\": 1,\n\t\t\t\"lastName\": \"Divilioglu\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 44,\n\t\t\t\"firstName\": \"John\",\n\t\t\t\"id\": 2,\n\t\t\t\"lastName\": \"Doe\",\n\t\t\t\"regular\": false\n\t\t},\n\t\t{\n\t\t\t\"age\": 24,\n\t\t\t\"firstName\": \"Jane\",\n\t\t\t\"id\": 3,\n\t\t\t\"lastName\": \"Doe\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 66,\n\t\t\t\"firstName\": \"Fawn\",\n\t\t\t\"id\": 4,\n\t\t\t\"lastName\": \"Smith\",\n\t\t\t\"regular\": false\n\t\t},\n\t\t{\n\t\t\t\"age\": 99,\n\t\t\t\"firstName\": \"Bob\",\n\t\t\t\"id\": 5,\n\t\t\t\"lastName\": \"Immortal\",\n\t\t\t\"regular\": true\n\t\t}]\n\t},\n\t\"meta\": {\n\t\t\"successful\": true\n\t}\n}\n```\n\nSample Capture;\n\n![capture-for-create-customer-a](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/04_A_CREATE_CUSTOMER.PNG)\n![capture-for-create-customer-b](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/04_B_CREATE_CUSTOMER.PNG)\n\n[Go back to Section 5](#5-testing-and-incoming-outgoing-json-samples) \u003cbr/\u003e\n[Go back to TOC](#toc) \u003cbr/\u003e\n\n\n\n5-e Update Customer\n-------------------\n\nMethod:          PUT \u003cbr/\u003e\nTool:            Postman \u003cbr/\u003e\nLink:            http://localhost:8080/customer-api/customers \u003cbr/\u003e\nConsume  Format: \"application/json\" \u003cbr/\u003e\nResponse Format: \"application/json\" \u003cbr/\u003e\nRequest Input;\n```\n{\n\t\"age\": 66,\n\t\"firstName\": \"Johnny B.\",\n\t\"id\": 345345,\n\t\"lastName\": \"Goode\",\n\t\"regular\": true\n}\n```\n\nResponse Output;\n```\n{\n\t\"data\": {\n\t\t\"customers\": [{\n\t\t\t\"age\": 66,\n\t\t\t\"firstName\": \"Johnny B.\",\n\t\t\t\"id\": 2,\n\t\t\t\"lastName\": \"Goode\",\n\t\t\t\"regular\": true\n\t\t}]\n\t},\n\t\"meta\": {\n\t\t\"successful\": true\n\t}\n}\n```\n\nFinal Collection;\n```\n{\n\t\"data\": {\n\t\t\"customers\": [{\n\t\t\t\"age\": 31,\n\t\t\t\"firstName\": \"Levent\",\n\t\t\t\"id\": 1,\n\t\t\t\"lastName\": \"Divilioglu\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 66,\n\t\t\t\"firstName\": \"Johnny B.\",\n\t\t\t\"id\": 2,\n\t\t\t\"lastName\": \"Goode\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 24,\n\t\t\t\"firstName\": \"Jane\",\n\t\t\t\"id\": 3,\n\t\t\t\"lastName\": \"Doe\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 66,\n\t\t\t\"firstName\": \"Fawn\",\n\t\t\t\"id\": 4,\n\t\t\t\"lastName\": \"Smith\",\n\t\t\t\"regular\": false\n\t\t},\n\t\t{\n\t\t\t\"age\": 99,\n\t\t\t\"firstName\": \"Bob\",\n\t\t\t\"id\": 5,\n\t\t\t\"lastName\": \"Immortal\",\n\t\t\t\"regular\": true\n\t\t}]\n\t},\n\t\"meta\": {\n\t\t\"successful\": true\n\t}\n}\n```\n\nSample Capture;\n\n![capture-for-update-customer-a](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/05_A_UPDATE_CUSTOMER.PNG)\n![capture-for-update-customer-b](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/05_B_UPDATE_CUSTOMER.PNG)\n\n[Go back to Section 5](#5-testing-and-incoming-outgoing-json-samples) \u003cbr/\u003e\n[Go back to TOC](#toc) \u003cbr/\u003e\n\n\n\n5-f Delete Customer\n-------------------\n\nMethod:          DELETE \u003cbr/\u003e\nTool:            Postman \u003cbr/\u003e\nLink:            http://localhost:8080/customer-api/customers/4 \u003cbr/\u003e\nResponse Format: \"application/json\" \u003cbr/\u003e\n\nResponse Output;\n```\n{\n\t\"meta\": {\n\t\t\"successful\": true\n\t}\n}\n```\n\nFinal Collection;\n```\n{\n\t\"data\": {\n\t\t\"customers\": [{\n\t\t\t\"age\": 31,\n\t\t\t\"firstName\": \"Levent\",\n\t\t\t\"id\": 1,\n\t\t\t\"lastName\": \"Divilioglu\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 66,\n\t\t\t\"firstName\": \"Johnny B.\",\n\t\t\t\"id\": 2,\n\t\t\t\"lastName\": \"Goode\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 24,\n\t\t\t\"firstName\": \"Jane\",\n\t\t\t\"id\": 3,\n\t\t\t\"lastName\": \"Doe\",\n\t\t\t\"regular\": true\n\t\t},\n\t\t{\n\t\t\t\"age\": 99,\n\t\t\t\"firstName\": \"Bob\",\n\t\t\t\"id\": 5,\n\t\t\t\"lastName\": \"Immortal\",\n\t\t\t\"regular\": true\n\t\t}]\n\t},\n\t\"meta\": {\n\t\t\"successful\": true\n\t}\n}\n```\n\nSample Capture;\n\n![capture-for-delete-customer-a](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/06_A_DELETE_CUSTOMER.PNG)\n![capture-for-delete-customer-b](https://github.com/bzdgn/simple-grizzly-standalone-restful-webservice-example/blob/master/ScreenShots/06_B_DELETE_CUSTOMER.PNG)\n\n[Go back to Section 5](#5-testing-and-incoming-outgoing-json-samples) \u003cbr/\u003e\n[Go back to TOC](#toc) \u003cbr/\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbzdgn%2Fsimple-grizzly-standalone-restful-webservice-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbzdgn%2Fsimple-grizzly-standalone-restful-webservice-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbzdgn%2Fsimple-grizzly-standalone-restful-webservice-example/lists"}