本次范例以 exchangerate-api 为例,需要先注册信箱并有 key 才可以使用。
以 Net:HTTP Ruby 内建 Library 为例
uri = URI('http://example.com/some_path?query=string')
Net::HTTP.start(uri.host, uri.port) do |http|
request = Net::HTTP::Get.new uri
response = http.request request # Net::HTTPResponse object
end
uri = URI('http://example.com/cached_response')
file = File.stat 'cached_response'
req = Net::HTTP::Get.new(uri)
req['If-Modified-Since'] = file.mtime.rfc2822
注: 详细可参考 https://ruby-doc.org/stdlib-3.0.2/libdoc/net/http/rdoc/Net/HTTP.html
接下来,我们用 exchangerate 汇率交易的 api,以最新的美金汇率换算为例,EXCHANGE_RATE_APP_ID
设定在环境变数内,为 exchangerate-api 提供的 secret_key(别直接写在 code 内 commit 惹~)
另外也可以将连结放入前几篇介绍的 config 内,这边的 Settings.exchange_rates_api
,也就是 "https://v6.exchangerate-api.com/v6"
,透过 GET 得到 API response。
uri = URI(Settings.exchange_rates_api + "/#{ENV["EXCHANGE_RATE_APP_ID"]}/latest/USD")
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
req = Net::HTTP::Get.new uri.request_uri
res = http.request(req)
end
就马上可以获得 exchange_rate 啦!
{
"result": "success",
"documentation": "https://www.exchangerate-api.com/docs",
"terms_of_use": "https://www.exchangerate-api.com/terms",
"time_last_update_unix": 1634169602,
"time_last_update_utc": "Thu, 14 Oct 2021 00:00:02 +0000",
"time_next_update_unix": 1634256002,
"time_next_update_utc": "Fri, 15 Oct 2021 00:00:02 +0000",
"base_code": "USD",
"conversion_rates": {
"USD": 1,
"AED": 3.6725,
"AFN": 84.9745,
"ALL": 105.0810,
"AMD": 478.1197,
"ANG": 1.7900,
"AOA": 601.0158,
"ARS": 98.9610,
"AUD": 1.3572,
"AWG": 1.7900,
"AZN": 1.6973,
"BAM": 1.6887,
"BBD": 2.0000,
"BDT": 85.5464,
"BGN": 1.6896,
"BHD": 0.3760,
"BIF": 1983.1474,
"BMD": 1.0000,
"BND": 1.3523,
"BOB": 6.8897,
"BRL": 5.5301,
"BSD": 1.0000,
#...
}
}
另外也可以先透过 Postman 来打试试看,只要直接将网址丢在上方即可马上获得。
在经历了几篇的MLOps基础概念之後,想在後面的文章带大家看看几个案例。透过案例来学习,会对专案在技...
今日目标 : 不罗嗦,直接附上Code css .login{0 background-color:...
系统架构 系统监控是维护资源可靠性、可用性与效能的重要环节。 指标计算 即时计算:即时的本地服务指标...
沃呜!铁人倒数3天了,我们离完赛就差一颠点啦,我们今天来讲讲components吧~继续gogogo...
Virtual Judge ZeroJudge 题意 对每一列输入,输出各字元的 ASCII &a...