Qiita API
Qiita について
ソフトウェアエンジニア用のSNSで、多くの情報があります。
Qiita API について
Qiita が提供している API で、認証無しでも一部は利用可能です。 ただし、ドキュメントはあまり見やすくない。
Rubyでアクセスしてみる
やること
GET アクセスで tag の投稿数を上位から 100 個取得する。
使うライブラリ
Ruby 2.3 の標準ライブラリですべて対応できる。 使うのは
で、おまけで pp も使っている。
手順
アクセスするURIを準備する。
uri = URI.parse( address )
address は具体的には
"http://qiita.com/api/v2/tags?page=xxx&per_page=xxx&sort=count"
Net::HTTP::Get を準備する。
request = Net::HTTP::Get.new(uri.request_uri)
Net::HTTP を準備する
http = Net::HTTP.new( host ) http.set_debug_output $stderr #=> デバッグコメントを出したいなら
アクセスする。
resp = http.request(req)
resp はHTTPのレスポンス毎にクラスが分かれていて、分岐することができる。 アクセス全体を例外処理できるようにしておいた方がデバッグしやすい。
JSON
JSON.pretty_generate( JSON.parse( body ) )
うまくアクセスできれば JSON でレスポンスが返ってくる。 それは resp.body で参照可能だが、そのまま標準出力やファイルに書き出すと少し見難いので、JSON ライブラリで加工する。
または Ruby の Hash にしてスクリプト内部で利用することも可能です。
Ruby によるアクセス用サンプルクラス
使い方
全体をまとめたクラス QiitaGet を作成して、
qiita = QiitaGet.new printf( "%s\n", qiita.get_pretty( "tags", {page: 1, per_page: 100, sort: "count" } ) )
こんな感じで、tag の投稿数を上位から 100 個取得することができる。