import java.util.List;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.ContextResolver;
import org.glassfish.jersey.moxy.json.MoxyJsonConfig;
/**
* Example of calling the EVE OpenAPI using Jersey 2.26. Specific Jersey components needed
* include jersey-client 2.26, jersey-hk2 2.26, and jersey-media-moxy 2.26.
*/
public class EveOpenAPIExample {
// variable names need to match names from the EVE OpenAPI
private static class Region {
private String region_id;
private String name;
private List<String> constellations;
private String description;
public String getRegion_id() {
return region_id;
}
public void setRegion_id(String region_id) {
this.region_id = region_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getConstellations() {
return constellations;
}
public void setConstellations(List<String> constellations) {
this.constellations = constellations;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
public static void main(String[] args) {
// setup the service information we will need for the example
final String target = "https://esi.tech.ccp.is/latest/";
final String path = "universe/regions/{regionid}/";
final String regionId = "10000002";
final String dataSource = "tranquility";
// create the client configured to use MOXy for JSON binding
final MoxyJsonConfig moxyJsonConfig = new MoxyJsonConfig();
final ContextResolver jsonConfigResolver = moxyJsonConfig.resolver();
Client client = ClientBuilder.newBuilder()
.register(jsonConfigResolver).build();
// execute example call on EVE OpenAPI to read information on a region
Region region = client.target(target)
.path(path)
.resolveTemplate("regionid", regionId)
.queryParam("datasource", dataSource)
.request(MediaType.APPLICATION_JSON_TYPE)
.get(new GenericType<Region>(){});
// utilize the data
System.out.println("Read information for region " + region.getName());
System.exit(0);
}
}
Eve blog with topics on anti-piracy, industry, and anything I think might make Eve a better place.
Monday, March 26, 2018
Calling EVE OpenAPI with Java
If you are into Java and want a quick example of a way you can read data from the EVE OpenAPI, here is an example I wrote using Jersey 2.26.
Subscribe to:
Post Comments (Atom)
Noone reads your shitty blog dude.
ReplyDelete