To request a truncation, POST to /
{"format": "json", "url": "http://example.com"}
Truncation response:
{"trunct":{"token": "3bU65R", "url": "http://example.com"}}
To expand a token, GET /<token>.json
GET /3bU65R.json
Expand response:
{"trunct":{"token": "3bU65R", "url": "http://example.com"}}
require 'rubygems' require 'json' require 'uri' require 'net/http' class TrunctClient attr_accessor :host, :port def initialize(options={}) self.host = options[:host] self.port = options[:port] || 80 end def trunc(url) req = Net::HTTP::Post.new("/", initheader = {'Content-Type' =>'application/json'}) req.body = {"url" => url, "format" => "json"}.to_json response = Net::HTTP.new(host, port).start {|http| http.request(req) } data = JSON::parse(response.body) data["trunct"]["token"] end def expand(token) url = URI.parse("http://#{host}/#{token}.json") req = Net::HTTP::Get.new(url.path) res = Net::HTTP.start(host, port) {|http| http.request(req) } data = JSON::parse(res.body) data["trunct"]["url"] end end