Restler is a library that automatically generates a client for a web service at run time, by analyzing the respective annotated Spring controller interface. Restler may help you remove HTTP-specific boilerplate from your integration tests, microservices and thirdparty HTTP API clients.
EPA warning: Restler currently is in early public access stage and it is neither feature complete, tested in production or backward compatible
- Easily extensible architecture
- Custom authentication, authorization and errors mapping strategies
- Support of form-based, http basic, cookie-based and generic header-based authentication
- Support of async controllers through methods returning
Future
,DefferedResult
orCallable
objects - Experemental Spring Data REST support
Suppose you have the following interface on the server:
/**
* An annotated Spring controller interface
*/
@Controller
@RequestMapping("greeter")
public interface Greeter {
@RequestMapping("greetings/{language}")
String getGreeting(@PathVariable String language, @RequestParam(defaultValue = "Anonymous") String name);
}
Then in your client you can invoke the getGreeting
method of the remote service using the following code snippet:
Service service = new Restler("https://www.example.com/api", new SpringMvcSupport()).build();
Greeter greeter = service.produceClient(Greeter.class);
String greeting = greeter.getGreeting("en","Buddy"); // the result of https://www.example.com/api/greeter/greetings/en?name=Buddy call