くりにっき

フルスタックキュアエンジニアです

イベントサーチAPI比較

ついかっとなって比較してみた

ATNDフォーマット

ATND
http://api.atnd.org/
eventATND
http://atnd.org/doc/api.html
Zusaar
http://www.zusaar.com/doc/api.html
connpass
http://connpass.com/about/api/

これらのAPIはリクエストとレスポンスがほとんど同じなので「ATNDフォーマット」と勝手に呼称しています。*1

リクエスト

ATND eventATND Zusaar connpass
event_id イベントID
keyword キーワード(AND)
keyword_or キーワード(OR)
category イベントカテゴリ―コード × × ×
category_detail イベント詳細カテゴリ―コード × × ×
ym イベント開催年月
ymd イベント開催年月日
user_id 参加者のユーザID
nickname 参加者のニックネーム
twitter_id 参加者のTwitter ID × ×
facebook_id 参加者のFacebook ID × × ×
google_plus_id 参加者のGoogle+ ID × × ×
owner_id 主催者のユーザID
owner_nickname 主催者のニックネーム
owner_twitter_id 主催者のTwitter ID × ×
owner_facebook_id 主催者のFacebook ID × × ×
owner_google_plus_id 主催者のGoogle+ ID × × ×
series_id シリーズID × ×
start 検索の開始位置
order 検索結果のソート順 × × ×
count 取得件数
format レスポンス形式 xml,json,jsonp,atom,ics xml,json,jsonp,atom,ics json, jsonp json, jsonp
ATND eventATND Zusaar connpass
  • connpassのリファレンスにはjsonしか書いていないですが、callbackを渡すとjsonpになります
  • ソート順を指定できるのはeventATNDのみなので、複数API対応させたい場合はクライアントサイドで頑張る必要があります
    • もしくはAZusaar!!みたいに順不同にするかw

レスポンス

ATND eventATND Zusaar connpass
results_returned 含まれる検索結果の件数
results_available 利用可能な検索結果の総件数 *2 × *3
results_start 検索の開始位置
event [複数要素] events events event events
 event_id イベントID
 title タイトル
 catch キャッチコピー
 description 概要
 event_url イベントページのURL
 logo_image イベントのロゴ画像 × × ×
 started_at イベント開催日時
 ended_at イベント終了日時
 category [複数要素] × × ×
  code カテゴリーコード × × ×
  code_name カテゴリー名 × × ×
  detail_code 詳細カテゴリーコード × × ×
  detail_code_name 詳細カテゴリー名 × × ×
 pay_type 無料/有料イベント × × ×
 url 参考URL ×
 limit 定員
 event_type イベント参加タイプ × × ×
 series シリーズ        
  id シリーズID × × ×
  title シリーズタイトル × × ×
  url シリーズのURL × × ×
 address 開催場所
 place 開催会場
 lat 開催会場の緯度
 lon 開催会場の経度
 owner_id 主催者のID
 owner_profile_url 主催者のプロフィール × × ×
 owner_nickname 主催者のニックネーム
 owner_twitter_id 主催者のtwitter ID × ×
 owner_facebook_id 主催者の Facebook ID × × ×
 owner_google_plus_id 主催者の Google+ ID × × ×
 accepted 参加者
 waiting 補欠者
 updated_at 更新日時
 owner_twitter_img 主催者のTwitter画像 *4 × ×
 owner_facebook_img 主催者のFacebook画像 × × ×
 owner_google_plus_img 主催者のGoogole+画像 × × ×
ATND eventATND Zusaar connpass
  • レスポンスはリファレンスに書いてない要素もとれるので、書いてあることを鵜呑みにするより実際に叩いて調べた方がいいです
    • ドキュメントが置いてけぼりになるなんてよくあること
  • レスポンスの差異はイベントサイトの特色
    • eventATND : カテゴリ
    • connpass : シリーズ
  • Zusaarのpay_typeとconnpassのevent_typeはほぼ同等
イベント配列について
  • ATNDとeventATNDでは「event」と記載してるけど実際は「events」
  • Zusaarはドキュメント通り「event」
  • connpassはドキュメント通り「events」

というように微妙に食い違っているため、うまい具合ハンドリングしてやる必要があります

参考:AZusaar!!のソース
https://github.com/sue445/azusaar_js/blob/master/src/event.js#L163

*1:connpass APIに関しては僕が中の人にATNDフォーマットにしてほしいとお願いしたんですがw

*2:ドキュメントには記載なし

*3:ドキュメントには記載なし

*4:ドキュメントには記載なし