Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/p1atdev/calil
Calil 図書館 API クライアント for Deno
https://github.com/p1atdev/calil
api-client calil deno denoland library
Last synced: 8 days ago
JSON representation
Calil 図書館 API クライアント for Deno
- Host: GitHub
- URL: https://github.com/p1atdev/calil
- Owner: p1atdev
- License: mit
- Created: 2022-05-29T20:54:19.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-08-17T08:32:52.000Z (over 2 years ago)
- Last Synced: 2024-12-17T16:13:44.741Z (21 days ago)
- Topics: api-client, calil, deno, denoland, library
- Language: TypeScript
- Homepage: https://deno.land/x/calil
- Size: 37.1 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Calil Client
[![deno module](https://shield.deno.dev/x/calil)](https://deno.land/x/calil)
![deno compatibility](https://shield.deno.dev/deno/^1.22)
[![vr scripts](https://badges.velociraptor.run/flat.svg)](https://velociraptor.run)
[![codecov](https://codecov.io/gh/p1atdev/calil/branch/main/graph/badge.svg?token=S37OD55SBF)](https://codecov.io/gh/p1atdev/calil)
![Testing](https://github.com/p1atdev/calil/actions/workflows/test.yml/badge.svg)
![Lint](https://github.com/p1atdev/calil/actions/workflows/lint.yml/badge.svg)図書館蔵書検索 API [Calil(カーリル)](https://calil.jp/) の Deno クライアント
API 仕様書: https://calil.jp/doc/api_ref.html
## 使い方
### 図書館の検索
```ts
import { CalilClient } from "https://deno.land/x/[email protected]/mod.ts";const client = new CalilClient({ appKey: "your_app_key" });
const libraries = await client.searchLibrary({
prefecture: "沖縄",
limit: 2,
});console.log(libraries);
```関数的に
```ts
import { createCalilClient } from "https://deno.land/x/[email protected]/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` |`prefecture`、`systemId`、`location`のうち、少なくともどれかは指定する必要があります
※ システム ID とは?
> システム ID
> は、各図書館が導入している蔵書管理システムの固有の識別子で「Kanagawa_Fujisawa」のようなアルファベットとアンダーラインによって構成されています。
> 一つのシステム ID には多くの場合、複数の図書館/図書室が紐付いています。市に一つのシステム ID
> があり、市内の全ての図書館・図書室が含まれていることが多いですが、複数の市町村で共同で一つのシステム ID
> がある場合や、合併などによって一つの市に複数のシステム ID があることもあります。詳しくは [カーリル図書館 API 仕様書](https://calil.jp/doc/api_ref.html) を参照
### 貸出状況の検索
クラス的に
```ts
import { CalilClient } from "https://deno.land/x/[email protected]/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);
```関数的に
```ts
import { createCalilClient } from "https://deno.land/x/[email protected]/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](https://ja.wikipedia.org/wiki/ISBN)
本の一番後ろのページとかに 必ず書いてある 10 桁、または 13 桁の数字です。ハイフンで区切られていることもあります。Amazon
の商品ページとかにも載っています。## 仕様書
詳細な型定義はコードを参照してください
API 仕様書: https://calil.jp/doc/api_ref.html
appKey は [ダッシュボード](https://calil.jp/api/dashboard/) から取得できます。無料です。
ダッシュボード: https://calil.jp/api/dashboard/