icon
icon

RubyのプログラムでWebAPIを利用する方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyのプログラムでWebAPIを利用する方法について現役エンジニアが解説しています。WebAPIとは、外部のサイトが提供しているプログラムから利用できるような機能のことです。天気予報や株式情報やyoutubeの動画に関する設定、googleカレンダーなどがあります。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

RubyのプログラムでWebAPIを利用する方法について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

RubyのプログラムでWebAPIを利用する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

APIとは?WebAPIとは?

APIとはApplication Programming Interfaceの略称で、何かしらのサービス提供者が、そのサービスを利用するために提供するインタフェースのことを指します。

有名なAPIだと、youtubeのAPIを使用すれば、youtube動画の検索や表示を実装できます。

画像検索のAPIなら画像検索の機能を、ビットコインのAPIなら価格を取得する機能を、郵便番号のAPIなら住所を取得する機能を、使えるようになります。
 

RubyのプログラムでWebAPIを利用する方法

RubyでWebAPIを使用する場合は、net/httpのライブラリを使用します。

またデータはjson形式のことが多いので、jsonのライブラリも一緒に使うことが多いです。

手順は

  1. アクセスするURLをパースする(解析する)
  2. httpの通信を設定する
  3. リクエストを作成する
  4. リクエストを投げる/レスポンスを受け取る
  5. データを変換する(json=>hashなど)

の5つになります。
 

[PR] 未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

それでは、実際に書いてみましょう。今回はkeyやsecretを必要としない、単純なAPIを叩いてみます。

ランダムユーザージェネレーターというオープンソースのAPIを使用して、ダミーの名前を取得してみましょう。

ランダムユーザージェネレーター

それでは書いていきます。

 

require 'net/http'
require 'json'

# 1.urlを解析する
url = URI.parse("https://randomuser.me/api/")
# 2.httpの通信を設定する
# 通信先のホストやポートを設定
https = Net::HTTP.new(url.host, url.port)
# httpsで通信する場合、use_sslをtrueにする
https.use_ssl = true
# 3.リクエストを作成する
req = Net::HTTP::Get.new(url.path)
# 4.リクエストを投げる/レスポンスを受け取る
res = https.request(req)
# 5.データを変換する
hash = JSON.parse(res.body)
# 結果を出力
puts hash["results"][0]["name"]
結果は実行するたびに変わりますが、以下のようになります。

{"title"=>"miss", "first"=>"viola", "last"=>"westberg"}

 

以上でAPIの解説を終わります。

クエリを使用して、条件を指定して情報をとってきたり、データの登録/更新/削除もAPIが提供されていれば、実施することができます。ぜひ様々なAPIを試してみてください。

 

監修してくれたメンター

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。