[go: up one dir, main page]

Menu

Tree [91a283] v0.4.0 / utils / rest-client /
 History

HTTPS access


File Date Author Commit
 src 2015-06-19 Sperry, Daniel Sperry, Daniel [7da82b] Fixing header duplication problem.
 README.md 2015-04-22 Daniel Sperry Daniel Sperry [23c892] Update README.md
 pom.xml 2015-07-03 Joe Hegarty Joe Hegarty [91a283] Version 0.4.0

Read Me

Orbit Async REST Client

Allows calling JAX-RS REST interfaces with methods returning
CompletableFuture
or Orbit
Task.
This enables writing REST client code in a fluent asynchronous way.

The project orbit-rest-client depends only on the JAX-RS standard and it is in principle
compatible with any client library that provides javax.ws.rs.client.WebTarget.
It has been tested with
jersey-client.

Examples

Using Orbit Tasks

public interface Hello
{
    @GET
    @Path("/")
    Task<String> getHome();
}

public static void main(String args[])
{
    WebTarget webTarget = getWebTarget("http://example.com");

    Hello hello = new OrbitRestClient(webTarget).get(Hello.class);

    Task<String> response = hello.getHome();

    response.thenAccept(x -> System.out.println(x)); 
    response.join();
}

// use any jax-rs client library to get javax.ws.rs.client.WebTarget
private static WebTarget getWebTarget(String host)
{
    ClientConfig clientConfig = new ClientConfig();
    Client client = ClientBuilder.newClient(clientConfig);
    return client.target(host);
}

Using CompletableFuture

public interface Hello
{
    @GET
    @Path("/")
    CompletableFuture<String> getHome();
}

public static void main(String args[])
{
    WebTarget webTarget = getWebTarget("http://example.com");

    Hello hello = new OrbitRestClient(webTarget).get(Hello.class);

    CompletableFuture<String> response = hello.getHome();

    response.thenAccept(x -> System.out.println(x)); 
    response.join();
}

// use any jax-rs client library to get javax.ws.rs.client.WebTarget
private static WebTarget getWebTarget(String host)
{
    ClientConfig clientConfig = new ClientConfig();
    Client client = ClientBuilder.newClient(clientConfig);
    return client.target(host);
}