12
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

rakuten_web_service の紹介

Last updated at Posted at 2016-09-22
1 / 18

おまえ、誰よ?


何してんの?

  • 某Rのつくインターネットサービス企業の情シスっぽいところ
  • RubyやRailsとかスクラムとか

好きなエディタ

  • vim
  • Visual Studio Code

今日のお題: 自作gem

ということで宣伝に来ました。


rakuten_web_service

  • 楽天ウェブサービスAPIのRubyクライアント

Screen Shot 2016-09-18 at 12.41.40 PM.png


楽天ウェブサービス

  • 楽天が提供するサービスの情報を取得するためのAPI群
    • 楽天市場の商品
    • 楽天トラベルの宿泊施設、空き情報
    • 楽天ブックスの本、CD/DVD、雑誌
    • Koboの本
    • レシピのランキング
    • ゴルフ施設の情報、コース情報

など。


動機: 他に良いのが無かった。

  • 既にたくさんあった。
  • けど、満足いくものはなかった。
    • 最新のAPIに対応してない。
    • Web APIを意識してコードを書かないといけない。
  • そもそも、弊社から公式クライアント無いの :crying_cat_face:

2013年夏、爆誕 :tada:

Screen Shot 2016-09-18 at 12.51.22 PM.png


公式クライアントに :raised_hands: :smile: :raised_hands:

Screen Shot 2016-09-18 at 12.53.35 PM.png


使い方


準備: アプリケーションIDを設定

RakutenWebService.configuration do |c|
    # アプリケーションID
    c.application_id = 'YOUR_APPLICATION_ID'

    # アフィリエイトIDを設定すればアフィリエイトも!
    c.affiliate_id = 'YOUR_AFFILIATE_ID'
end

商品を検索してみよう。

require `rakuten_web_service`

items = RakutenWebService::Ichiba::Item.
  search(keyword: 'BABYMETAL')

商品の情報を取ってみよう。

item = items.first

# オブジェクトっぽく
item.name #=> "BABYMETAL -来日記念限定盤ー (初回限定盤 CD+DVD) [ BABYMETAL ]"

# JSONを扱う気分でも
item['itemName'] #=> 同上

ページング

items = items.page(3)  # 3ページ目

if items.has_next_page? #次があれば次のページに
  items = item.next_page 
end

# 面倒くさいときは#allで全部取ってくる。
items.all.each do |item|
  puts "#{item.name} - #{item.price}円"
end

API間のスムーズな連携

  • 商品検索、ジャンル情報、ランキングはそれぞれ別のAPI
  • 違いを気にさせないインタフェース
# さっき検索した商品と同じジャンルのTOP3
item.genre.ranking.first(3)

ちょっと困ってること


開発のネタ探し

12
7
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
12
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?