/rest-client-framework

Java framework for making REST clients

Primary LanguageJavaMozilla Public License 2.0MPL-2.0

Pocolifo's REST Client Framework

Java framework for making REST clients

testing


Here's how easy it is

Here's an example for a GET request in the context of a service status request:

package my.awesome.api.client.request;

import com.pocolifo.restclientframework.request.Endpoint;
import com.pocolifo.restclientframework.request.methods.get.GetRequest;

@Endpoint("https://api.awesome.com")
public class ServiceStatusRequest extends GetRequest<ServiceStatusResponse> {}

You would then have a ServiceStatusResponse class:

package my.awesome.api.client.response;

import com.google.gson.annotations.SerializedName;
import com.pocolifo.restclientframework.response.ResponseHeader;

public class ServiceStatusResponse {
    
    @SerializedName("version")
    public String version;
    
    @ResponseHeader("server")
    public String apiServerHeader;
    
}

A GET request, but with some parameters:

package my.awesome.api.client.request;

import com.pocolifo.restclientframework.request.Endpoint;
import com.pocolifo.restclientframework.request.methods.get.GetRequest;
import com.pocolifo.restclientframework.request.RequestParameter;

@Endpoint("https://api.awesome.com/items/%itemId%")
public class GetItemRequest extends GetRequest<ItemResponse> {
    
    @RequestParameter
    public String itemId;
    
}

Then the response template:

package my.awesome.api.client.response;

import com.google.gson.annotations.SerializedName;

public class ItemResponse {
    
    @SerializedName("id")
    public String id;
    
    @SerializedName("name")
    public String name;
    
}

You can also add headers to the request you make. Note that these variables must be of the String type.

package my.awesome.api.client.request;

import com.pocolifo.restclientframework.request.Endpoint;
import com.pocolifo.restclientframework.response.ResponseHeader;

@Endpoint("https://api.awesome.com/items/put")
public class PutNewItemRequest {
    
    @ResponseHeader("X-Authentication-Method")
    public String authMethod;

    @ResponseHeader("X-Authentication-Key")
    public String authKey;

}