Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【はじめてのWebAPI】RubyでのHTTPClientの基本構文

More than 1 year has passed since last update.

はじめに

RubyでHTTPClientを使うときの基本構文について記載しました。
Web APIを使って外部データを引っ張るための第一歩!

この記事が役立つ方

  • Web APIを触ったことがなくて
  • HTTPクライアントを使ったことのない
  • Ruby初心者

この記事のメリット

  • 外部からデータを引っ張る第一障壁をクリア出来る

環境

  • OS: macOS Mojave version 10.14.6
  • ターミナルのシェル: zsh
  • Ruby 2.6.3

HTTPClientとは?

Rubyで標準で入っているnet/httpよりも機能面が充実しているHTTPクライアントライブラリ。

これを使うことにより、プログラムで外部へHTTPリクエストを送ることが出来るようになります。

導入

まずは以下のようにgemをインストールして下さい。

gem install httpclient

基本コード

以下が基本のコードです。
ここからは活用したいデータによって書き方が異なります。

# HTTPClientを呼び出す
require 'httpclient'

#ベースとなるURLを設定(e-Statからデータを引っ張る場合)
url = 'https://api.e-stat.go.jp/rest/2.1/app/json/getStatsData'

# 新しいインスタンスを作成
client = HTTPClient.new

#クエリの設定(appIdとstatsDataIdはサンプルです。)
query = { 
  'appId' => 'XXXXXXXXXXXXXXXXXXX'
  'statsDataId' => '0000000000'
}
#APIリクエスト
res = client.get(url, query)
#ハッシュ化して返す
return JSON.parse(res.body)

おわりに

今回はかなり部分的な内容となってしまったので、また後日加筆修正します。

e-Statのデータを取り出す方法についてもまとめるつもりです。

外部データを引っ張ると、ハッシュ in 配列 in ハッシュみたいな複雑な構造が多く、勉強になりますね。
政府統計の総合窓口(e-Stat)−API機能へようこそ | 政府統計の総合窓口(e-Stat)−API機能

参考にさせて頂いたサイト(いつもありがとうございます)

Class: HTTPClient — Documentation for httpclient (2.8.3)
Ruby HTTPクライアントの比較表 - Qiita
Rubyを使って天気予報を取得してみた - Qiita

terufumi1122
ストックついでに「いいね!」もしてもらえると嬉しいです。 HTML/CSS/JavaScript/Vue.js/Ruby/Ruby on Rails/Java/Kotlin/Android
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away