1

I know we can sync data using rhodes without Rhosync or Rhoconnect by using direct web service, but I'm here little bit confuse where to place that code for webservice call and how do we initialize it. Can anyone help me with small example?

Thanks in Advance.

Rameshwar Vyevhare
  • 2,699
  • 2
  • 28
  • 34

2 Answers2

3

I got it and it works for me.

class ProductController < Rho::RhoController
  include BrowserHelper

    # GET /product
  def index
    response =  Rho::AsyncHttp.get(:url => "example.com/products.json",
     :headers => {"Content-Type" => "application/json"})
     @result = response["body"] 

    render :back => '/app'
  end

    # GET /product/{1}
  def show
    id =@params['id']
    response =  Rho::AsyncHttp.get(:url => "example.com/products/"+ id +".json",
    :headers => {"Content-Type" => "application/json"})

    @result = response["body"]
  end

   # GET /product/new
  def new
    @product = product.new

    render :action => :new, :back => url_for(:action => :index)
  end

    # GET /product/{1}/edit
  def edit
    id =@params['product_id'].to_s
    response =  Rho::AsyncHttp.get(:url => "example.com/products/#{id}.json",
    :headers => {"Content-Type" => "application/json"})

    @result = response["body"]
  end

    # POST /product/create
  def create
    name = @params['product']['name']
    price = @params['product']['price']
    body = '{"product" : {"name" : "'+ name +'","price" :"'+ price +'"  } }'

    @result =  Rho::AsyncHttp.post(:url => "example.com/products.json",
    :body => body, :http_command => "POST", :headers => {"Content-Type" => "application/json"})  

    redirect :action => :index
  end

    # POST /product/{1}/update
  def update

    name=@params['product']['name']
    price=@params['product']['price']

    body = '{"product" : {"name" : "' + name + '","price" :"' + price + '"  } }'
    id = @params["product_id"].to_s

    response =  Rho::AsyncHttp.post(:url => "example.com/products/#{id}.json",
    :body => body, :http_command => "PUT",:headers => {"Content-Type" => "application/json"})

    redirect :action => :index
  end

    # POST /product/{1}/delete
  def delete
    id = @params["product_id"].to_s
    response =  Rho::AsyncHttp.post(:url => "example.com/products/#{id}.json",
    :http_command => "DELETE", 
    :headers => {"Content-Type" => "application/json"})  

    redirect :action => :index  
  end
end
Rameshwar Vyevhare
  • 2,699
  • 2
  • 28
  • 34
0

Most easy form of http server request is next:

Rho::AsyncHttp.get(
  :url => "http://www.example.com",
  :callback => (url_for :action => :httpget_callback)
)

where httpget_callback is name of the controller callback method.

See more details at official Rhodes docs.

j0k
  • 22,600
  • 28
  • 79
  • 90
Alexey
  • 146
  • 1
  • 4