Skip to content

RestClient is Java Command/Handler pattern based REST Client allowing easy Command based REST invocations in any Java App using Spring

License

Notifications You must be signed in to change notification settings

peterl1084/rest-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RestClient

RestClient is Java Command/Handler pattern based REST Client allowing easy Command based REST invocations in any Java App using Spring.

Setup

  • RestClient requires SpringBoot to run.
  • RestClient can be used by applying @EnableRestClient annotation on your project's Configuration bean.
  • Your application.properties should have the following definitions:
rest.client.serverBaseUrl = http://url-to-server:port
rest.client.connectionTimeout = timeout-in-ms
rest.client.readTimeout = timeout-in-ms

RestMethod

All invocations that can be executed with this RestClient are to implement RestMethod<RESULT_TYPE> interface. The RESULT_TYPE maybe either a direct return value DTO type or a Collection<DTO>, for example:

class GetCustomersMethod implements RestMethod<List<Customer>>

or

class GetCustomerMethod implements RestMethod<Customer>

The methods then need to be annotated with RestMethodConfiguration that specifies the serviceUri's relative part as well as which HttpMethod is used (GET, POST...)

Once done the @Autowired RestClient can be used to invoke the methods directly for example.

@Autowired
private RestClient client;

List<Customer> customers = client.invoke(new GetCustomersMethods());
Customer customer = client.invoke(new GetCustomerMethods(123));

The client will automatically take care of all type conversion and return type handling as long as the invoked REST method really returns JSON or XML that can be mapped to expected <RESULT_TYPE>.

About

RestClient is Java Command/Handler pattern based REST Client allowing easy Command based REST invocations in any Java App using Spring

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages