CiNii APIとは
全国の大学図書館の書籍情報を取得することができます。
APIキー取得方法
✅公式サイトにアクセスして、デベロッパー登録
✅必要事項を記入して、登録
✅登録したメールアドレス宛にAPIキーが届きます。
APIの使い方
👇まずはお試しください。
Executeをクリックすることで結果を確認できます。
パラメータの使い方
※詳細は公式サイトにも記載があります。
パラメータ | 詳細 | |
---|---|---|
q | フリーワード:部分一致テキスト検索 | |
title | タイトル:部分一致テキスト検索 | |
title_exact | タイトル完全一致検索フラグ:trueまたはfalseを指定して検索します。完全一致検索をしたい場合はtrueを指定してください。 | |
include_utl | タ統一タイトル検索対象フラグ:trueまたはfalseを指定して検索します。完全一致検索をしたい場合はtrueを指定してください。 | |
author | 著者名:部分一致テキスト検索 | |
include_alias | 著者名別名検索対象フラグ:trueまたはfalseを指定して検索します。著者名検索の際に著者別名を検索対象に含めたい場合trueを指定してください。 | |
publisher | 出版社:部分一致テキスト検索 | |
subject | 件名:部分一致テキスト検索 | |
note | 注記:部分一致テキスト検索 | |
isbn | 完全一致。 10桁/13桁のどちらでも検索できます。ハイフンは無視されます。 | |
issn | 完全一致。ハイフンは無視されます。 | |
ncid | 完全一致。 | |
lang | 言語種別をコードで指定する。コードは言語コード表を参照。 | |
area | エリア:所蔵図書館の地域を指定して検索。参加組織レコードコード一覧のKENコードを指定。 | |
year_from | 出版年(開始):西暦年。指定された年を含む | |
year_to | 出版年(終了):西暦年。指定された年を含む | |
type | 資料種別:0:無指定(デフォルト)、1:図書、2:雑誌 | |
format | atom:ATOM形式(デフォルト)、rss: RSS形式、 json: JSON-LD形式、html:HTML形式 | |
appid | アプリケーションID | 必須 |
pythonでの実装方法
import requests
endpoint = "https://ci.nii.ac.jp/books/opensearch/search"
headers= {
}
params={
"appid":"<APIキー>",
"q":"革命のファンファーレ",
"lang":"jpn",
"format":"json"
}
result = requests.get(endpoint, headers=headers, params=params)
res = result.json()
print("書籍タイトル: "+res["@graph"][0]["items"][0]["title"])
print("詳細ページ: "+res["@graph"][0]["items"][0]["link"]["@id"])
print("出版年: "+res["@graph"][0]["items"][0]["dc:date"])
print("著者: "+res["@graph"][0]["items"][0]["dc:creator"])
print("出版社: "+res["@graph"][0]["items"][0]["dc:publisher"][0])
print("所蔵図書館数: "+res["@graph"][0]["items"][0]["cinii:ownerCount"])
出力結果:
書籍タイトル: 革命のファンファーレ : 現代のお金と広告
詳細ページ: https://ci.nii.ac.jp/ncid/BB2460201X
出版年: 2017
著者: 西野亮廣著
出版社: 幻冬舎
所蔵図書館数: 489
本APIで取得できる、詳細ページのURLにアクセスすることで、どの大学の図書館に所蔵されているか詳細を確認することができます。
また、URLの最後に”.json”を付与することでjsonでも取得できるので同様にプログラムから詳細情報を取得することも可能です。こんな感じ。https://ci.nii.ac.jp/ncid/BB2460201X
https://ci.nii.ac.jp/ncid/BB2460201X.json
また、URLの最後に”.json”を付与することでjsonでも取得できるので同様にプログラムから詳細情報を取得することも可能です。こんな感じ。https://ci.nii.ac.jp/ncid/BB2460201X
https://ci.nii.ac.jp/ncid/BB2460201X.json
javascriptでの実装方法
javascriptではfetchを利用したコードを記載します。
then()を使用した場合
//リクエスト時のクエリパラメータ
const query_params = new URLSearchParams({
appid:"<APIキー>",
q:"革命のファンファーレ",
lang:"jpn",
format:"json"
});
//APIリクエスト
fetch("https://ci.nii.ac.jp/books/opensearch/search?" + query_params)
.then(response => {
return response.json()
})
.then(data => {
console.log(data["@graph"])
})
awaitを使用した場合
awaitを使用することで少しだけ可読性が上がります。APIリクエストのところは結果がすぐに帰ってくるのでawaitでも問題ないかと思います。
then()は非同期処理なのに対してawaitは同期処理になります。
then()は非同期で処理が進むのに対してawaitは処理が完全に終了するまで待機します。
const query_params = new URLSearchParams({
appid: "<APIキー>",
q:"革命のファンファーレ",
lang:"jpn",
format:"json"
});
const response = await fetch("https://ci.nii.ac.jp/books/opensearch/search??" + query_params);
const data = await response.json();
console.log(data["@graph"])
以下の記事では書籍の著者情報からの検索のやり方について記載しています。
CiNii APIで 大学書籍を取得 #2CiNii APIとは
全国の大学図書館の書籍情報を取得することができます。
今回は書籍の著者情報を取得するAPIに関して記載い...