メモ的な何か

技術的な私のメモになる予定です。

RubyでConnpassのAPIを叩く

はじめに

RubyCLIアプリを作成し始めました。
ConnpassのイベントをGoogleカレンダーに登録する感じのを作ろうと思います。
便利なものになるかはわかりません。(そもそもCLIアプリな時点で)
完成形は置いといてまずはHttpsでConnpassのAPIを叩くところを作りました。

API呼び出し

APIの仕様に沿って作成しました。
すごいAPIがシンプルなので難しいところはないのですが、APIの呼び出しがHTTPSになると以外に情報がなかったので呼び出し部分を抜粋で載せておきます。
特に外部ライブラリ使わなくても標準のnet/httpでも十分って感じでした。

def self.get(params)
  begin
    validation params # パラメータのバリデーションチェック呼び出し
    params = URI.encode_www_form params
    uri = URI.parse("https://connpass.com/api/v1/event/?#{params}")
    response = Net::HTTP.start(uri.host, uri.port, :use_ssl => true) { |http|
      request = Net::HTTP::Get.new uri
      http.request request
    }
    JSON.parse response.body
  rescue ArgumentError => e
    e.message
  rescue IOError => e
    e.message
  rescue Timeout::Error => e
    e.message
  rescue JSON::ParserError => e
    e.message
  rescue => e
    e.message
  end
end

パラメータのバリデーションチェックも簡単にですが実装しています。
引っかかった場合はArgumentErrorを返す感じです。
エラー処理部分は今はエラーメッセージを返す感じにしてますが、そのままエラーを呼び出しもとに投げる形に変えるかも。