# Shows how to interact with the REST api from ruby. # No special libraries, just standard net/http # # Author: Michael Neale # require 'net/http' uri = URI.parse('http://localhost:11222/rest/v2/caches/default/MyKey') http = Net::HTTP.new(uri.host, uri.port) #Create new entry post = Net::HTTP::Post.new(uri.path, {"Content-Type" => "text/plain"}) post.basic_auth('user','pass') post.body = "DATA HERE" resp = http.request(post) puts "POST response code : " + resp.code #get it back get = Net::HTTP::Get.new(uri.path) get.basic_auth('user','pass') resp = http.request(get) puts "GET response code: " + resp.code puts "GET Body: " + resp.body #use PUT to overwrite put = Net::HTTP::Put.new(uri.path, {"Content-Type" => "text/plain"}) put.basic_auth('user','pass') put.body = "ANOTHER DATA HERE" resp = http.request(put) puts "PUT response code : " + resp.code #and remove... delete = Net::HTTP::Delete.new(uri.path) delete.basic_auth('user','pass') resp = http.request(delete) puts "DELETE response code : " + resp.code #Create binary data like this... just the same... uri = URI.parse('http://localhost:11222/rest/v2/caches/default/MyLogo') put = Net::HTTP::Put.new(uri.path, {"Content-Type" => "application/octet-stream"}) put.basic_auth('user','pass') put.body = File.read('./logo.png') resp = http.request(put) puts "PUT response code : " + resp.code #and if you want to do json... require 'rubygems' require 'json' #now for fun, lets do some JSON ! uri = URI.parse('http://localhost:11222/rest/v2/caches/jsonCache/user') put = Net::HTTP::Put.new(uri.path, {"Content-Type" => "application/json"}) put.basic_auth('user','pass') data = {:name => "michael", :age => 42 } put.body = data.to_json resp = http.request(put) puts "PUT response code : " + resp.code get = Net::HTTP::Get.new(uri.path) get.basic_auth('user','pass') resp = http.request(get) puts "GET Body: " + resp.body