使用102号的RESAS-API在Docker中运行

在Ruby编程语言中使用RESAS-API获取旅游资源的位置信息(纬度和经度)。
链接:https://qiita.com/niwasawa/items/608bbac1fbef3e086210

$ docker run -v /Users/administrator/Downloads/ruby:/tmp/ruby -p 8080:8080 -it ruby /bin/bash
# apt update; apt -y upgrade
# apt install -y vim wget apt-utils sudo
# vi resas.rb
# ruby resas.rb
{"statusCode"=>"403", "message"=>"Forbidden.", "description"=>""}
Traceback (most recent call last):
resas.rb:34:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)

市区町村列表
https://opendata.resas-portal.go.jp/docs/api/v1/cities.html

获取api/v1/cities

| 都道府県 | 市町村 | 支庁市郡 | 区町村 | ふりがな | 変更 |
|:–|:–|:–|:–|:–|:–|:–|:–|:–|
| 23 | 100 | 名古屋市 | | なごやし | | | 政令指定都市 |
| 23 | 101 | 千種区 | ちくさく |
| 23 | 102 | 東区 | ひがしく |
| 23 | 103 | 北区 | きたく |
| 23 | 104 | 西区 | にしく |
| 23 | 105 | 中村区 | なかむらく |
| 23 | 106 | 中区 | なかく |
| 23 | 107 | 昭和区 | しょうわく |
| 23 | 108 | 瑞穂区 | みずほく |
| 23 | 109 | 熱田区 | あつたく |
| 23 | 110 | 中川区 | なかがわく |
| 23 | 111 | 港区 | みなとく |
| 23 | 112 | 南区 | みなみく |
| 23 | 113 | 守山区 | もりやまく |
| 23 | 114 | 緑区 | みどりく |
| 23 | 115 | 名東区 | めいとうく | 1975.0201 | 分離 | ←千種区,昭和区 |
| 23 | 116 | 天白区 | てんぱくく | 1975.0201 | 分離 | ←昭和区 |

| 都道府県 | 市町村 | 支庁市郡 | 区町村 | ふりがな | 変更 |
|:–|:–|:–|:–|:–|:–|:–|:–|:–|
| 23 | 100 | 名古屋市 | | なごやし | | | 政令指定都市 |
| 23 | 101 | 千種区 | ちくさく |
| 23 | 102 | 東区 | ひがしく |
| 23 | 103 | 北区 | きたく |
| 23 | 104 | 西区 | にしく |
| 23 | 105 | 中村区 | なかむらく |
| 23 | 106 | 中区 | なかく |
| 23 | 107 | 昭和区 | しょうわく |
| 23 | 108 | 瑞穂区 | みずほく |
| 23 | 109 | 熱田区 | あつたく |
| 23 | 110 | 中川区 | なかがわく |
| 23 | 111 | 港区 | みなとく |
| 23 | 112 | 南区 | みなみく |
| 23 | 113 | 守山区 | もりやまく |
| 23 | 114 | 緑区 | みどりく |
| 23 | 115 | 名東区 | めいとうく | 1975.0201 | 分離 | ← 千種区,昭和区 |
| 23 | 116 | 天白区 | てんぱくく | 1975.0201 | 分離 | ← 昭和区 |

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

def get(url, params, headers)

  if params != nil && !params.empty?
    url += '?' + URI.encode_www_form(params)
  end

  uri = URI.parse(url)

  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true

  req = Net::HTTP::Get.new(uri.request_uri, headers)
  res = https.request(req)

  json = res.body
  return JSON.parse(json)

end

url = 'https://opendata.resas-portal.go.jp/api/v1/tourism/attractions'
params = {
  'prefCode' => '23',
  'cityCode' => '100',
}
headers = {
  'X-API-KEY' => 'id'
}
data = get(url, params, headers)
puts data
data['result']['data'].each do |v|
  puts "#{v['resourceName']}: #{v['lat']},#{v['lng']}"
end
# ruby resas.rb
400
Traceback (most recent call last):
resas.rb:34:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)

将其保存在Docker Hub中。

docker run -v /Users/administrator/Downloads/ruby:/tmp/ruby -p 8080:8080 -it kaizenjapan/ruby_resas /bin/bash

文書履歴 – document history

版本0.01 初稿 20191213
版本0.02 增加內容 20191214
版本0.03 標題增加內容 20200101

感谢您一直阅读到最后。

喜欢,?,请关注。

非常感谢您阅读到最后一句话。

请点击喜欢的图标 ? 并关注我,迎接您快乐的生活。

广告
将在 10 秒后关闭
bannerAds