Ruby webAPIにbearerを使用してgetする

  • 作成日 2021.11.14
  • 更新日 2022.04.30
  • Ruby
Ruby webAPIにbearerを使用してgetする

RubyでwebAPIにbearerを使用してgetするまでの手順を記述してます。Rubyのバージョンは3.0.0となります。

環境

  • OS CentOS 7.9.2009 (Core)
  • Ruby 3.0.0

bearer使用

bearerは「Authorization」に指定します。

req["Authorization"] = "bearer 01fa5a92-9e97-45ef-bg68-8dde2a50e82f"

これでbearerを使用して、webapiからgetが可能になります。WebAPIは、JSON形式のデータを想定してます。

require "net/https"
require "uri"
require "json"

# URI
BASE_URL = "https://url"
GET_URI = "#{BASE_URL}/api/v1/token"

# URL構成要素を取得 (uri.host, uri.port)
uri = URI.parse("#{GET_URI}")

# セッション開始
http = Net::HTTP.new(uri.host, uri.port)

# SSL接続時の設定
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

# get実行
req = Net::HTTP::Get.new(uri.request_uri)

# bearerを指定
req["Authorization"] = "bearer 01fa5a92-9e97-45ef-bg68-8dde2a50e82f"

# Content-Typeを指定
req["Content-Type"] = "application/json"

begin
  # リクエスト開始
  res = http.request(req)
  # json
  results = JSON.parse(res.body)
rescue IOError => e
  p "IOError=#{e.message}"
rescue TimeoutError => e
  p "TimeoutError=#{e.message}"
rescue JSON::ParserError => e
  p "ParserError=#{e.message}"
rescue => e
  p "error=#{e.message}"
end

# ステータスコードを取得
p res.code, res.msg