LoginSignup
4
6

More than 3 years have passed since last update.

RubyでJson形式の結果を返すWebAPIを使ってみよう(ハンズオン)

Last updated at Posted at 2021-04-14

はじめに

この記事は, rubyでweb apiの使いかたを理解するための初心者向けの記事です。具体的には, rubyで郵便APIを使用し, コンソールに表示するまでを行います。

バージョン : ruby3.0.0

WebAPIとは何か

WebAPIの概説

みなさん、WebAPIって何かわかりますか!?

シーン....

おっと(笑)。でも大丈夫ですよ、丁寧に説明していこうと思います。厳密な定義などが知りたい方は, 記事に記載されている公式リファレンスを参照してくださいね。

まず、APIについて見ていきましょう。Mozzilaの公式リファレンスの説明によるとAPIは次のように説明されています。

Application Programming Interfaces (APIs) は、開発者が複雑な機能をより簡単に作成できるよう、プログラミング言語から提供される構造です。

平たく言うと, 複雑なコードで書かれた難しいプログラムを, 誰でも簡単に扱えるようにしたものです。

そして, このAPIのうちサーバからデータ取得をする APIのことをWebAPIと呼びます。

例えば、WebAPIでは,TwitterAPIがありますが、これは最新のツイートをwebサイトに表示するという機能を簡単に扱えるようにしてあるAPIです。他にも,GoogleAPIやFacebook API、YouTube APIなど様々なAPIが提供されています。

WebAPIを使ってみよう

流れ

それでは、実際にWebAPIを使っていきましょう。

流れとしては、
①uriモジュールを使って, URIをパースする (URIの解析)
②net/httpモジュールを使って, APIにget通信でAPIのサーバにアクセスして、サーバからJSON形式の結果をもらう。(HTTP通信でAPIにアクセス)
③jsonモジュールを使って, JSON形式をhash形式に変換する (JSONの結果をHashに変換する)
④digメソッドでhashから値を取り出す(Hashから値を取り出す)

郵便APIの構成

ここで試しに使う郵便APIは,以下のとおりです。?以降のzipcode=〇〇に郵便番号を指定する事で住所を返してくれます。ブラウザでこのコードにアクセスすると, APIにアクセスした結果が表示されます。

http://zipcloud.ibsnet.co.jp/api/search?zipcode=2500011

Screen Shot 2021-04-14 at 18.01.53.png

実装(ハンズオン)

最後にコードで実装すると次のようになります

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

#①uriモジュールを使って, URIをパースする (URIの解析)
uri = URI.parse('http://zipcloud.ibsnet.co.jp/api/search?zipcode=2500011')

#②net/httpモジュールを使って, APIにget通信でAPIのサーバにアクセスして、サーバからJSON形式の結果をもらう。(HTTP通信でAPIにアクセス)
json = Net::HTTP.get(uri)

#③jsonモジュールを使って, JSON形式をhash形式に変換する (JSONの結果をHashに変換する)
#symbolize_names: trueでシンボルのキーをシンボルのままでhashにする。
result = JSON.parse(json, {symbolize_names: true})

#④digメソッドでhashから値を取り出す(Hashから値を取り出す)
puts result.dig(:results, 0,:address1)

これを実行すると, 神奈川県という結果が返ってきます

参考記事

MDN Web Docs | Web APIの紹介
Ruby 3.0.0 リファレンスマニュアル library net/http
Ruby 3.0.0 リファレンスマニュアル Hashクラス
Ruby 3.0.0 リファレンスマニュアル JSON.#parce
WebAPIについての説明
郵便番号API
RubyでJSON形式の結果が帰ってくるURLをParceする
RubyでネストしたHashやArrayから値を取り出す方法いろいろ

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6