Consumir webservice restful json

Prezados, qual a melhor forma de consumir um webservice restful com retorno no formato JSON? O que sugerem?

Sou novo no mundo ruby on rails.

Obrigado.

Pow, se puder trazer uma resposta ou algum link com tutorial exemplificando, seria bacana.

Desenvolvo para iOS e utilizo webservices em PHP e Java.
Confesso que tenho curiosidade em desenvolver esse tipo de serviço utilizando Ruby ou Ruby on Rails.

Bruno, é justamento o que estou querendo: Uma direção. Dica. Exemplo. Qualquer coisa =D

Obrigado.

Galera segue um link com alguns exemplos de restFul

http://www.vogella.com/articles/REST/article.html

A pergunta é referente a Ruby on Rails. Não java.

Mesmo assim, obrigado.

Opa foi mal…

tem um link com um exemplo com ruby.

talvez possa te ajudar a ter uma ideia.

http://www.robertsosinski.com/2008/02/23/simple-and-restful-authentication-for-ruby-on-rails/

  1. Uma api que serve json:
    Você cria a rota e o controller no esquema Rails mesmo, e na action usa render json: "conteudo json aqui"
class UsersController < ApplicationController

  def show
    render json: User.find(params[:id])
  end

end
  1. Consumindo uma api:
    Aqui entram alguma variáveis.
    2.1) Existe uma gem (rest-client, você pode usar com rails ou não) que é muito utilizada e dá conta do recado no que tange a consumir restful api’s:
require 'rest_client'
require 'json'

response = RestClient.get("http://apirestdooutrolado.com/v1/users/1234")
user = JSON.parse(response)
puts user["id"]
puts user["name"]

response = RestClient.post("http://apirestdooutrolado.com/v1/users", {name: "Teste", idade: 28}.to_json, {"Content-Type" => "application/json"})
puts response.code

2.2) Se você precisar mapear o retorno da api para um model, pode usar o activeresource, que faz o trabalho sujo pra você. Você faz find e save igual no activerecord, só que ao invés de postar/buscar num banco de dados, ele faz em alguma api rest.

1 curtida

Prezados, obrigado pelas dicas. Resolvi o problema da seguinte forma:

require 'net/http' require 'json' require "uri"

[code] def index

url = URI.parse('http://localhost:8080/AtividadeWeb/webresources/br.uvv.entity.tipoatividade')
req = Net::HTTP::Get.new(url.path)
res = Net::HTTP.start(url.host, url.port) {|http|
  http.request(req)
}

@tipoAtividades = JSON.parse(res.body)

respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @tipoAtividades}
end

end[/code]

Vlw!

usa o RestClient ao invés de usar o puro net/http. Você terá menos problemas no futuro.