6.6.3. Code samples

Below, find examples written in different programming languages to show how to use the Babelway REST API within your application. These are just starting points to build upon.

Java

Download the last 25 messages in ERROR. It requires using Apache Commons httpclient, codec and logging for HTTP calls and SAX for XML parsing

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class RESTClient {

 public static void main(String[] args) throws Exception {

  String baseUrl = "https://www.babelway.net/SelfService3/rest/v2/";
  Long myHub = 0L; // You can find this on the My Account page
  String user = "";// the username you use to connect to Babelway
  String pwd = ""; // the password you use to connect to Babelway

  // Download the last 25 messages in ERROR
  String request  = baseUrl + "hub-" + myHub + "/messages.xml?status=ERROR";
  HttpClient client = new HttpClient();
  client.getState().setCredentials(AuthScope.ANY_REALM, "www.babelway.net", new UsernamePasswordCredentials(user, pwd));
  GetMethod method = new GetMethod(request);

  // Send the request
  int statusCode = client.executeMethod(method);

  // read the result
  if (statusCode == 200) {
   InputStream rstream = null;
   rstream = method.getResponseBodyAsStream();
   BufferedReader br = new BufferedReader(new InputStreamReader(rstream));

   SAXParser sxp = SAXParserFactory.newInstance().newSAXParser();
   sxp.parse(rstream, new SaxHandler());

  }
 }
 private static final class SaxHandler extends DefaultHandler {
  // invoked when document-parsing is started:
  public void startDocument() throws SAXException {
   System.out.println("Document processing started");
  }

  // notifies about finish of parsing:
  public void endDocument() throws SAXException {
   System.out.println("Document processing finished");
  }

  // we enter to element 'qName':
  public void startElement(String uri, String localName,
    String qName, Attributes attrs) throws SAXException {
   // Do your processing
   System.out.println("Element " + qName);
  }

  // we leave element 'qName' without any actions:
  public void endElement(String uri, String localName, String qName)
  throws SAXException {
   // do nothing;
  }
 }
}
 
 

C#

using System;
using System.Text;
using System.Net;
using System.IO;

namespace RESTClient
{
class Program
{
static void Main(string[] args)
{
string baseURL = "https://www.babelway.net/SelfService3/rest/v2/";
long myHub = 0; // You can find this on the My Account page
String user = "";// the username you use to connect to Babelway
String pwd = ""; // the password you use to connect to Babelway            

// Download the last 25 messages in ERROR
String request = baseURL + "hub-" + myHub + "/messages.xml?status=ERROR";

HttpWebRequest webRequest = WebRequest.Create(request) as HttpWebRequest;

// Add authentication to request
webRequest.Credentials = new NetworkCredential(user, pwd);

// Get Response
HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse;

// Read the result
if (webRequest.HaveResponse == true && response != null)
{
// Get the response stream  
StreamReader reader = new StreamReader(response.GetResponseStream());

// Console application output  
Console.WriteLine(reader.ReadToEnd());
}
}
}
} 

Python

This code snipet requires Python 2.6 or newer. No extra modules are required

 import json
 import urllib2

 base_url = "https://www.babelway.net/SelfService3/rest/v2/";
 my_hub = 0 #You can find this on the My Account page
 user = "" #the username you use to connect to Babelway
 pwd = "" #the password you use to connect to Babelway
   
 request = "%shub-%s/messages.json" %(base_url, my_hub)

 # Create a pwd manager that handles any realm (default realm)
 pwd_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()

 # Create the authentication handler, add the login/pwd to it
 auth_handler = urllib2.HTTPBasicAuthHandler(pwd_manager)
 auth_handler.add_password(None, request, user, pwd)

 # Build the URL Opener
 opener = urllib2.build_opener(auth_handler)
 urllib2.install_opener(opener)

 # Read and parse the JSON response
 try:
  f = urllib2.urlopen(request)
  print json.load(f)
 except urllib2.HTTPError as e:
  print e
 

PHP

This code snippet requires PHP version 5.2.0 or newer. No extra modules are required.

 
 <?
 $base_url = "https://www.babelway.net/SelfService3/rest/v2/";
 $my_hub = 0; // You can find this on the My Account page : 
 $user = ""; // the username you use to connect to Babelway
 $pwd = ""; // the password you use to connect to Babelway

 // Download all your tickets for the month of July 2010
 $from = mktime(0, 0, 0, 7, 1, 2010); 
 $to = mktime(23, 59, 59, 7, 31, 2010);
 
 // Generate the URL for the tickets:
 $url = $base_url . "hub-" . $my_hub . "/messages.json?since=" . $from . "&before=" . $to;
 
 // Make the REST query
 $context = stream_context_create(array( 
    'http' => array( 
      'method'  => 'GET', 
      'header'  => sprintf("Authorization: Basic %s\r\n", base64_encode($user.':'.$pwd))."\r\n", 
      'timeout' => 5, 
 ), 
 )); 
 $content = file_get_contents($url, false, $context);
 
 // Decode the JSON
 $data = json_decode($content);

 // Display them
 echo '<pre>';
 print_r($data);
 echo '</pre>';
 ?>