Nesta aula iremos aprender um pouco mais sobre funções, iremos ver mais uma forma de utilizar a função para economizar códigos desnecessários.
def recursiva
puts "Danilo"
end
recursiva
A função acima gera um loop infinito pois não colocamos uma saída, então ela chama a si mesmo (recursividade) até o infinito, abaixo mostramos como implementar uma condição de saída para prevenir a execução infinita.
def recursiva(count)
puts "Danilo"
return if count == 10
recursiva(count + 1)
end
count = 0
recursiva(1)
Como de praxe copie o arquivo padrão das aulas anteriores para seguir conforme o padrão.
Estrutura base que usaremos.
require 'byebug'
# debugger
@i = 1
def captura_servico
#TODO: capturar dados do serviço: http://localhost:3000/usuarios.json
puts "implementar o dado para buscar da API #{@i}"
@i += 1
return if 1 > 3
captura_servico
end
captura_servico
A URL que usaremos do serviço é utilizada localmente, caso você deseje o mesmo resultado deve iniciar a API que foi desenvolvida no curso de node.js como é mostrado na aula
require 'byebug'
# debugger
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
debugger
x = ""
end
captura_servico
Dica: Procure sobre o JSON Server Link para o pacote no NPM, assim você consegue montar uma resposta falsa de API REST simulando o que o fizemos aqui, inclusive com paginação.
require 'byebug'
require 'active_suport/all'
require 'httparty'
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
dados.each do |dado|
puts"==========================================="
puts dado["id"]
puts dado["nome"]
puts dado["login"]
puts dado["senha"]
puts dado["email"]
puts"==========================================="
end
end
end
6.times do |i|
captura_servico(i)
end
Implementação final com validação de paginas.
require 'byebug'
require 'active_suport/all'
require 'httparty'
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
dados.each do |dado|
puts"==========================================="
puts dado["id"]
puts dado["nome"]
puts dado["login"]
puts dado["senha"]
puts dado["email"]
puts"==========================================="
end
captura_servico(pagina + 1) if dados.size > 0
end
end
captura_servico
Nesta aula iremos aprender um pouco mais sobre funções, iremos ver mais uma forma de utilizar a função para economizar códigos desnecessários.
def recursiva
puts "Danilo"
end
recursiva
A função acima gera um loop infinito pois não colocamos uma saída, então ela chama a si mesmo (recursividade) até o infinito, abaixo mostramos como implementar uma condição de saída para prevenir a execução infinita.
def recursiva(count)
puts "Danilo"
return if count == 10
recursiva(count + 1)
end
count = 0
recursiva(1)
Como de praxe copie o arquivo padrão das aulas anteriores para seguir conforme o padrão.
Estrutura base que usaremos.
require 'byebug'
# debugger
@i = 1
def captura_servico
#TODO: capturar dados do serviço: http://localhost:3000/usuarios.json
puts "implementar o dado para buscar da API #{@i}"
@i += 1
return if 1 > 3
captura_servico
end
captura_servico
A URL que usaremos do serviço é utilizada localmente, caso você deseje o mesmo resultado deve iniciar a API que foi desenvolvida no curso de node.js como é mostrado na aula
require 'byebug'
# debugger
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
debugger
x = ""
end
captura_servico
Dica: Procure sobre o JSON Server Link para o pacote no NPM, assim você consegue montar uma resposta falsa de API REST simulando o que o fizemos aqui, inclusive com paginação.
require 'byebug'
require 'active_suport/all'
require 'httparty'
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
dados.each do |dado|
puts"==========================================="
puts dado["id"]
puts dado["nome"]
puts dado["login"]
puts dado["senha"]
puts dado["email"]
puts"==========================================="
end
end
end
6.times do |i|
captura_servico(i)
end
Implementação final com validação de paginas.
require 'byebug'
require 'active_suport/all'
require 'httparty'
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
dados.each do |dado|
puts"==========================================="
puts dado["id"]
puts dado["nome"]
puts dado["login"]
puts dado["senha"]
puts dado["email"]
puts"==========================================="
end
captura_servico(pagina + 1) if dados.size > 0
end
end
captura_servico