Skip to content

p1atdev/calil

Repository files navigation

Calil Client

deno module deno compatibility vr scripts codecov Testing Lint

図書館蔵書検索 API Calil(カーリル) の Deno クライアント

API 仕様書: https://calil.jp/doc/api_ref.html

使い方

図書館の検索

import { CalilClient } from "https://deno.land/x/calil@v0.1.2/mod.ts";

const client = new CalilClient({ appKey: "your_app_key" });

const libraries = await client.searchLibrary({
  prefecture: "沖縄",
  limit: 2,
});

console.log(libraries);

関数的に

import { createCalilClient } from "https://deno.land/x/calil@v0.1.2/mod.ts";

const client = createCalilClient({ appKey: "your_app_key" });

const libraries = await client.searchLibrary({
  prefecture: "沖縄",
  limit: 2,
});

console.log(libraries);

output:

[
  Library {
    libraryId: "102944",
    formalName: "北谷町立北玉小学校図書室",
    shortName: "北玉小学校",
    systemId: "Okinawa_Chatan",
    systemName: "沖縄県北谷町",
    libraryKey: "北玉小学校",
    category: "SMALL",
    postalCode: "904-0105",
    tel: "098-936-3928",
    prefecture: "沖縄県",
    city: "中頭郡北谷町",
    address: "沖縄県中頭郡北谷町字吉原875番地",
    location: Location { latitude: 127.7729474, longitude: 26.3137224 },
    isil: null,
    faid: null,
    url: "https://www.chatan.jp/kosodate/library/"
  },
  Library {
    libraryId: "102945",
    formalName: "北谷町立北谷中学校図書室",
    shortName: "北谷中学校",
    systemId: "Okinawa_Chatan",
    systemName: "沖縄県北谷町",
    libraryKey: "北谷中学校",
    category: "SMALL",
    postalCode: "904-0105",
    tel: "098-936-3929",
    prefecture: "沖縄県",
    city: "中頭郡北谷町",
    address: "沖縄県中頭郡北谷町字吉原480番地",
    location: Location { latitude: 127.7796607, longitude: 26.3198774 },
    isil: null,
    faid: null,
    url: "https://www.chatan.jp/kosodate/library/"
  }
]

オプション

名前 説明
appKey? アプリケーションキー string your_key
prefecture? 都道府県 string 東京
city? 市区町村 string 千代田区
systemId? システム ID string Tokyo_NDL
location? 緯度&軽度 Location 上の返り値 location 参照
limit? 取得数 number 10

prefecturesystemIdlocationのうち、少なくともどれかは指定する必要があります

※ システム ID とは?

システム ID は、各図書館が導入している蔵書管理システムの固有の識別子で「Kanagawa_Fujisawa」のようなアルファベットとアンダーラインによって構成されています。 一つのシステム ID には多くの場合、複数の図書館/図書室が紐付いています。市に一つのシステム ID があり、市内の全ての図書館・図書室が含まれていることが多いですが、複数の市町村で共同で一つのシステム ID がある場合や、合併などによって一つの市に複数のシステム ID があることもあります。

詳しくは カーリル図書館 API 仕様書 を参照

貸出状況の検索

クラス的に

import { CalilClient } from "https://deno.land/x/calil@v0.1.2/mod.ts";

const appKey = "your_app_key";

const client = new CalilClient({ appKey });

const lending = await client.searchLending({
  isbn: "9784048923965", // キノの旅XX the Beautiful World
  systemId: "Tokyo_NDL",
});

console.log(lending);

関数的に

import { createCalilClient } from "https://deno.land/x/calil@v0.1.2/mod.ts";

const appKey = "your_app_key";

const client = createCalilClient({ appKey });

const lending = await client.searchLending({
  isbn: "9784048923965", // キノの旅XX the Beautiful World
  systemId: "Tokyo_NDL",
});

console.log(lending);

output:

Lending {
  books: [
    LendingData {
      isbn: "9784048923965",
      libraries: [
        LendingLibraryInformation {
          systemId: "Tokyo_NDL",
          status: "Cache",
          reserveUrl: "https://ndlonline.ndl.go.jp/#!/detail/R300000001-I027617183-00",
          libraryStatus: [ { name: "東京本館", status: "蔵書あり" } ]
        }
      ]
    }
  ]
}

オプション

名前 説明
appKey? アプリケーションキー string your_app_key
isbn 書籍 ISBN string 9784048923965
systemId システム ID string, string[], Library, Library[] Tokyo_NDL

systemId は図書館を指定します。図書館検索で帰ってきた Library を渡すことも可能です。

※ ISBN とは

ISBN(アイエスビーエヌ)は、International Standard Book Number の略称(頭字語)。図書(書籍)および資料の識別用に設けられた国際規格コード(番号システム)の一種。アラビア数字で表される。日本における漢訳名は「国際標準図書番号」。

Wikipedia - ISBN

本の一番後ろのページとかに 必ず書いてある 10 桁、または 13 桁の数字です。ハイフンで区切られていることもあります。Amazon の商品ページとかにも載っています。

仕様書

詳細な型定義はコードを参照してください

API 仕様書: https://calil.jp/doc/api_ref.html

appKey は ダッシュボード から取得できます。無料です。

ダッシュボード: https://calil.jp/api/dashboard/