SmallRye Rest Client is an implementation of Eclipse MicroProfile Rest Client.
-
docs - project documentation
-
implementation - produces implementation artifact
-
testsuite
-
basic - basic testsuite, tests functionalities which are not covered by the TCK
-
common - test utils shared accross all test suites
-
tck - TCK runner
-
In general, Rest Client proxies are not created by the CDI container and therefore method invocations do not pass through CDI interceptors.
In SmallRye, however, you can associate business method interceptors (denoted by the @AroundInvoke
annotation) with a Rest Client proxy by using interceptor bindings.
The primary use case is the support of MicroProfile Fault Tolerance annotations, for example:
import org.eclipse.microprofile.faulttolerance.Retry; @Path("/v1") interface MyClient { @Retry(maxRetries = 3) // Retry on any exception thrown @GET @Path("/hello") String hello(); }
Note
|
The org.eclipse.microprofile.faulttolerance.Asynchronous annotation is currently not supported because the underlying RESTEasy client is not able to handle the java.util.concurrent.Future return types.
|
In addition to the MicroProfile Rest Client specification, every Rest Client proxy implements io.smallrye.restclient.RestClientProxy
interface which allows you to:
-
obtain the underlying
javax.ws.rs.client.Client
instance -
release all associated resources, for example:
public void hello() { MyClient myClient = RestClientBuilder.newBuilder().build(MyClient.class); myClient.hello(); // Finally release all associated resources ((RestClientProxy) helloClient).close(); }