#ruby-on-rails #api #weather-api
#ruby-on-rails #API #погода-api
Вопрос:
Я новичок в Rails, и я пытаюсь создать простой погодный API для получения погоды по почтовому индексу есть ли способ получить почтовый индекс из пользовательского ввода из простой формы, это будет просто для обучения, поэтому я не пытаюсь заставить пользователей разрабатывать или моделировать пользователей
require 'net/http'
require 'json'
@url = 'http://api.openweathermap.org/data/2.5/weather?zip=#{zipcode}amp;appid=APIKEY'
@uri = URI(@url)
@response = Net::HTTP.get(@uri)
@output = JSON.parse(@response)
Ответ №1:
на самом деле я понял это, мне нужно было добавить
def zipcode
@zip_query = params[:zipcode]
if params[:zipcode] == ""
@zip_query = "Hey you forgot to enter a zipcode!"
elsif params[:zipcode]
# Do Api stuff
require 'net/http'
require 'json'
@url = 'http://api.openweathermap.org/data/2.5/weather?zip=' @zip_query 'amp;appid=APIKEY'
@uri = URI(@url)
@response = Net::HTTP.get(@uri)
@output = JSON.parse(@response)
@name = @output['name']
# Check for empty return result
if @output.empty?
@final_output = "Error"
elsif !@output
@final_output = "Error"
else
@final_output = ((@output['main']['temp'] - 273.15) * 9/5 32).round(2)
end
end
end
в файле controller.rb
и добавьте
post "zipcode" => 'home#zipcode'
get "home/zipcode"
в файле маршрутов
, но я уверен, что это не лучшая практика