iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Software Development

SQL rookie 之天天魯一下系列 第 10

Day 10 - 插話:利用SampleDB seeding 資料(2)

  • 分享至 

  • xImage
  •  

哈囉,大家好!

繼昨天利用JSONPlaceholder 的資料seeding database 後,心裡頓時覺得好爽哪!(感謝公司前輩指引了方向)

被翻爛的書今天想多研究一下parse JSON data 的方法有哪些,因看到公司專案有用HTTParty 的gem,所以先來研究一下各種parsde 的操作方式,那我們就開始啦:

  1. open-uri + open/read IO(昨天使用的parse 方式)
require 'open-uri'

post_data = JSON.parse(open('https://jsonplaceholder.typicode.com/posts').read)
post_data.each do |post|
  Post.create(userId: post["userId"], title: post["title"], body: post["body"])
end
  1. net/http
require 'net/http'

url = URI('https://jsonplaceholder.typicode.com/posts')
post_data = JSON.parse(Net::HTTP.get(uri))
  1. rest_client
    RubyGems: rest_client
    總下載次數: 259,210,327
    最後更新: 2019/08
    相依性套件: http-accept、http-cookie、mime-types、netrc
# 修改Gemfile 或gem install rest-client
# bundle install

# 進console 試試
url = 'https://jsonplaceholder.typicode.com/posts'
post_data = JSON.parse(RestClient.get(url))
  1. httparty
    RubyGems: httparty
    總下載次數: 201,523,185
    最後更新: 2021/09
    相依性套件: mime-types、multi_xml
# 修改Gemfile 或gem install httparty
# bundle install

# 進console 試試
url = 'https://jsonplaceholder.typicode.com/posts'
post_data = HTTParty.get(url).parsed_response

以上是幾個常見的Ruby HTTP Clients,意即當在開發 application 時,我們會透過API 和Server 連線以取得要資料,是個為便於工作階段使用以傳送HTTP 各項要求的類別。而我們可以靈活地使用各種HTTP Clients 甚至進一步研究使用其擴充方法。如上面四個Clients 我們便可看到各有優劣,如有些需要更多行codes 才能解開得到需要的response、有些則依賴了更多相依性套件,若再考量其擴充可用的方法,每個專案都會根據需要而有偏好和決定,如可以參考該比較圖:
Ruby HTTP clients comparison

總之,大家可利用上圖的standard library 內含clients 或第三方套件來選擇parse API data 的工具,並用以快速seeding 資料庫囉~~

那今天的研究就到這邊,謝謝大家~

參考/補充資料:
Microsoft HttpClient 類別說明
Slideshard - Ruby HTTP clients comparison by Hiroshi Nakamura


上一篇
Day 9 - 插話:利用SampleDB seeding 資料(1)
下一篇
Day 11 - 插話:利用SampleDB seeding 資料(3)
系列文
SQL rookie 之天天魯一下30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0

今天的內容很扎實!讚讚~

我要留言

立即登入留言