Let me share with you my JAX-RS Client API Groovy DSL prototype, code is available in GitHub https://github.com/shamoh/jersey-groovy repo. It just supports GET and POST methods. This is really just concept prototype. But it shows power of Groovy and way how simplified JAX-RS Client API could look like.
The GitHub repository contains couple of unit tests to show the DSL. And also uses Spock Framework what is another Groovy DSL example, in this case as testing framework/API.
Examples
GET plain text, no parameters
JAX-RS Client API:
WebTarget target = ClientBuilder.newClient().target(RESOURCE_URL) def response = target.request(TEXT_PLAIN_TYPE).get(String) response == "Hello World!"
Jersey Groovy DSL:
def response = GET[RESOURCE_URL].text response == "Hello World!"
GET plain text, path parameter
JAX-RS Client API:
WebTarget target = ClientBuilder.newClient().target(RESOURCE_URL) def response = target.path("Jersey").request(TEXT_PLAIN_TYPE).get(String) response == "Hello Jersey!"
Jersey Groovy DSL:
def response = GET[RESOURCE_URL/"Jersey"].text response == "Hello Jersey!"
GET XML, path parameter
JAX-RS Client API:
WebTarget target = ClientBuilder.newClient().target(RESOURCE_URL) def response = target.path("Jersey").request(APPLICATION_XML_TYPE).get(Message) response instanceof Message response.greeting == "Hello Jersey!"
Jersey Groovy DSL:
def response = (GET[RESOURCE_URL/"Jersey"] & APPLICATION_XML_TYPE) as Message response instanceof Message response.greeting == "Hello Jersey!"
POST plain text, response text
JAX-RS Client API:
WebTarget target = ClientBuilder.newClient().target(RESOURCE_URL) def Entity entity = Entity.entity("Jersey", TEXT_PLAIN_TYPE); def response = target.request().post(entity, String) response == "Hello Jersey!"
Jersey Groovy DSL:
def response = POST[RESOURCE_URL] << "Jersey" as String response == "Hello Jersey!"
POST object as JSON, response text
JAX-RS Client API:
WebTarget target = ClientBuilder.newClient().target(RESOURCE_URL) def Entity entity = Entity.entity(new Message("Jersey", new Date()), APPLICATION_JSON_TYPE) def response = target.request().post(entity, String) response == "Hello Jersey!"
Jersey Groovy DSL:
def response = (POST[RESOURCE_URL] | APPLICATION_JSON_TYPE) \ << new Message("Jersey", new Date()) as String response == "Hello Jersey!"
(And finally there is simple slide deck to introduce the DSL API, same examples.)
The various on line casino bonuses, offers, conditions and promotions make this a fancy multi-facited topic. We have tried our greatest to cowl any information that we predict impacts the overall player expertise, but it's likely that you may be} not have found the information you have been on the lookout for. Should this be the case, you can to|you presumably 다파벳 can} both ship our staff a question, or browse essentially the most frequently requested questions found under.
ReplyDelete