Ruby Quick Reference

Quick reference for efficient coding

View the Project on GitHub YumaYX/RubyQuickReference

simple_get.rb(json)

This Ruby code fetches book information from an API using an ISBN and parses the JSON response into a Ruby hash. It starts by importing the net/http and json libraries to handle HTTP requests and JSON parsing. The API URL, which includes the ISBN 9784791765553, is defined as a string. This URL string is then parsed into a URI object. An HTTP GET request is made to this URI, and the response, which is in JSON format, is stored as a string. Finally, the JSON string is parsed into a Ruby hash for easy access and manipulation of the book data.

Execution:

require "net/http"
#=> true
require "json"
#=> true

url = "https://api.openbd.jp/v1/get?isbn=9784791765553"
#=> "https://api.openbd.jp/v1/get?isbn=9784791765553"
uri = URI(url)
#=> #<URI::HTTPS https://api.openbd.jp/v1/get?isbn=9784791765553>
response = Net::HTTP.get(uri)
#=> "[{\"onix\":{\"CollateralDetail\":{},\"RecordReference\":\"9784791765553...
JSON.parse(response)
#=> 
[{"onix"=>
   {"CollateralDetail"=>{},
    "RecordReference"=>"9784791765553",
    "NotificationType"=>"03",
    "ProductIdentifier"=>{"ProductIDType"=>"15", "IDValue"=>"9784791765553"},
    "DescriptiveDetail"=>
     {"TitleDetail"=>
       {"TitleType"=>"01",
        "TitleElement"=>
         {"TitleElementLevel"=>"01",
          "TitleText"=>
           {"collationkey"=>"ネット バカ : インターネット ガ ワタシタチ ノ ノウ ニ シテイル コト",
            "content"=>"ネット・バカ : インターネットがわたしたちの脳にしていること"}}},
      "Contributor"=>
       [{"SequenceNumber"=>"1",
         "ContributorRole"=>[],
         "PersonName"=>
          {"content"=>"Carr, Nicholas G, 1959-", "collationkey"=>""}},
        {"SequenceNumber"=>"2",
         "ContributorRole"=>[],
         "PersonName"=>{"content"=>"篠儀, 直子", "collationkey"=>"シノギ, ナオコ"}}]},
    "PublishingDetail"=>
     {"Imprint"=>{"ImprintName"=>"青土社"},
      "PublishingDate"=>[{"PublishingDateRole"=>"11", "Date"=>"201007"}]},
    "ProductSupply"=>
     {"SupplyDetail"=>
       {"ProductAvailability"=>"99",
        "Price"=>
         [{"PriceType"=>"01", "CurrencyCode"=>"JPY", "PriceAmount"=>"2200"}]}}},
  "hanmoto"=>
   {"datecreated"=>"2015-08-20 03:41:02",
    "reviews"=>
     [{"post_user"=>"genkina",
       "reviewer"=>"養老孟司(解剖学者)",
       "source_id"=>29,
       "kubun_id"=>1,
       "source"=>"毎日新聞",
       "choyukan"=>"",
       "han"=>"",
       "link"=>"",
       "appearance"=>"2010-08-22",
       "gou"=>""},
      {"post_user"=>"genkina",
       "reviewer"=>"森健(ジャーナリスト)",
       "source_id"=>18,
       "kubun_id"=>1,
       "source"=>"朝日新聞",
       "choyukan"=>"",
       "han"=>"",
       "link"=>"",
       "appearance"=>"2010-09-12",
       "gou"=>""},
      {"post_user"=>"genkina",
       "reviewer"=>"",
       "source_id"=>23,
       "kubun_id"=>1,
       "source"=>"日本経済新聞",
       "choyukan"=>"",
       "han"=>"",
       "link"=>"",
       "appearance"=>"2010-09-12",
       "gou"=>""},
      {"post_user"=>"genkina",
       "reviewer"=>"",
       "source_id"=>19,
       "kubun_id"=>1,
       "source"=>"東京新聞/中日新聞",
       "choyukan"=>"",
       "han"=>"",
       "link"=>"",
       "appearance"=>"2010-09-12",
       "gou"=>""},
      {"post_user"=>"genkina",
       "reviewer"=>"鈴木幸一(インターネットイニシアティブ会長)",
       "source_id"=>29,
       "kubun_id"=>1,
       "source"=>"毎日新聞",
       "choyukan"=>"朝刊",
       "han"=>"",
       "link"=>"",
       "appearance"=>"2020-02-16",
       "gou"=>""}],
    "dateshuppan"=>"2010-07",
    "datemodified"=>"2015-08-20 03:41:02"},
  "summary"=>
   {"isbn"=>"9784791765553",
    "title"=>"ネット・バカ : インターネットがわたしたちの脳にしていること",
    "volume"=>"",
    "series"=>"",
    "publisher"=>"青土社",
    "pubdate"=>"201007",
    "cover"=>"",
    "author"=>"Carr,NicholasG,1959- 篠儀,直子"}}]

Executed with Ruby 3.3.5