Short external talk on web mashup: Mashup architecture
One may want to create a programmatic REST client using JAVA.
See the jersey documentation:
Adding the Maven dependency:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.22.1</version>
</dependency>
Using the client API is very easy:
Client orderClient = ClientBuilder.newClient();
WebTarget target = orderClient
.target("http://localhost:8082/rest-client-api-example/resources/orders/{id}");
Response response = target
.resolveTemplate("id", 1) // Resolves the {id} template
.request(MediaType.APPLICATION_JSON)
.get();
if(response.getStatus() == Status.OK.getStatusCode()){
Order order = (Order) response.readEntity(Order.class);
System.out.println("Id: " + order.getId());
System.out.println("Name: " + order.getName());
System.out.println("Price: " + order.getPrice());
}else{
System.out.println(response.getStatus() + " " + response.getStatusInfo());
}
Add the Maven dependency:
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
Sample usage:
//Server output in String
String output = response.getEntity(String.class);
final JSONObject jsonObj = (JSONObject) parser.parse( output );
if ( jsonObj != null && jsonObj.containsKey( "length" ) )
{
System.out.println(jsonObj.get( "length" ).toString());
}
Using another JSON pareser:
Maven:
<!-- Gson: Java to Json conversion -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
<scope>compile</scope>
</dependency>
Sample: http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/
Using the DOM XML Parser: http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/