カーリル

蔵書検索の基本パターン

  1. 問い合わせを出す
  2. 暫定結果が返ってくる
    • 暫定結果にはsessionキーと継続フラグがある。継続フラグが1の場合は、検索途中。
  3. sessionキーを使って、再度問い合わせをだす。

制限事項

  • 各アプリケーションキーにつき、IP毎に、1000書籍リクエスト/時
    • 書籍リクエスト = 問い合わせた ISBN数 × 図書館システムID数
      • 1システムID=1図書館システム(東京都世田谷区 Tokyo_Setagaya)
      • 1つの書籍を3つ図書館システムに同時に問い合わせた場合は、 「3書籍リクエスト」
  • checkのポーリングを何度行っても、書籍リクエストは消費しない。
    • SessionIDで紐づけている?
  • 1度のセッションで同時に問い合わせ可能な最大書籍リクエスト数は100

蔵書検索問い合わせ(初回)

  • アドレス:http://api.calil.jp/check (https://api.calil.jp/check)
  • パラメータ:
    • appkey (必須) : アプリケーションキーを指定します。
    • isbn (必須) : 書籍のISBNを指定します。カンマ区切りで複数指定できます。例「4834000826」
    • systemid (必須): システムIDを指定します。カンマ区切りで複数指定できます。例「Aomori_Pref」
    • format (任意) : 出力形式を指定します。xmlまたはjsonです。デフォルトはjson
    • callback (任意) : JSONPのcallback関数名を指定します。デフォルトはcallback

レスポンスの例

callback({"session": "b3d4c90792ea7d52a967bfe29dfa4eba", "books": {"4062197766": {"Aichi_Miyoshi": {"status": "Running", "reserveurl": ""}, "Aichi_Toyota": {"status": "Running", "reserveurl": ""}}}, "continue": 1});

レスポンスの continue が 1 の場合はまだ検索途中。
  • レスポンス
    • session
    • books :
      • (ISBN番号)
        • (エリア名(名古屋市図書館、とか)
          • status : (レスポンスの状態)
            • OK : 完了
            • Cache : 完了(キャッシュ利用)
            • Running : 問い合わせ中
            • Error : エラー
          • reverseurl : (予約用のURL)
          • libkey :
            • (図書館名(名古屋市図書館の東区図書館、とか支店) : (蔵書の状況)、蔵書のある図書館のみ表示される

蔵書検索問い合わせ(2回目以降)

初回の問い合わせで、まだ完了していない場合(検索途中のばあい)、apiキー と sessionキー を送ると、結果の続きをもらえる。

JSライブラリ


Calilオブジェクトのsearchメソッドで検索が始まる。

  • call_api 関数が呼びだされ、問い合わせが行われる
  • 結果が callback 関数に処理される
    • calil.session : セッション名(結果回答が未完了の際、次回呼び出しのためのキー)
    • calil.conti : apiでの「検索結果状態(continue)」
    • 最後に設定したレンダーで描画処理をする(ので、ここだけオリジナルを作ると、オリジナルに変更できる)
  • CalilRender.render_booksで描画処理
    • CalilRenderへのsystemid_listなどの情報提供はstart_render_booksで行われている(ので、検索する図書館情報、本情報はCalilRender内でも持っている。)
    • CalilRender.get_completed_systemid_count で完了した図書館数を返す
最終更新:2019年01月05日 19:02