Skip to content

Instantly share code, notes, and snippets.

@mosampaio
Created August 19, 2016 19:26
Show Gist options
  • Save mosampaio/f6592f9664e878d03d279cfd68aa6184 to your computer and use it in GitHub Desktop.
Save mosampaio/f6592f9664e878d03d279cfd68aa6184 to your computer and use it in GitHub Desktop.
How to consume a json Rest API with Java using Jersey
apply plugin: 'java'
repositories {
jcenter()
}
dependencies {
compile 'com.sun.jersey:jersey-client:1.19'
compile 'com.sun.jersey:jersey-json:1.19'
}
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.api.json.JSONConfiguration;
import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import java.util.List;
import static java.util.Arrays.asList;
public class JerseyLibrary {
@JsonIgnoreProperties(ignoreUnknown = true)
static class Contributor {
String login;
int contributions;
@JsonCreator
Contributor(@JsonProperty("login") String login, @JsonProperty("contributions") int contributions) {
this.login = login;
this.contributions = contributions;
}
public String toString() { return login + " (" + contributions + ")"; }
}
public static void main(String[] args) {
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
Client client = Client.create(clientConfig);
String url = "https://api.github.com/repos/twilio/twilio-java/contributors";
WebResource webResource = client.resource(url);
ClientResponse response = webResource.accept("application/json").get(ClientResponse.class);
List<Contributor> contributors = asList(response.getEntity(Contributor[].class));
contributors.stream().forEach(System.out::println);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment