いかにして問題を解くか

このサイトはGoogle Analyticsを利用しています。

Qiita API

Qiita について

ソフトウェアエンジニア用のSNSで、多くの情報があります。

Qiita

Qiita API について

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 個取得することができる。

全容

Sample script of qiita web api access