書籍検索APIを探してたときに見つけた、国立国会図書館APIを試してみた!
使った感のまとめ
- 認証なしで利用可能。検索も柔軟。
- 読み方がわかればシンプルだが、ドキュメントがわかりにくいかも。。
- タイトル、概要、出版社, 著者、出版社、発行日、価格、ページ数が取得可
しかもそれぞれのカナまである。 - ただし、価格などは「1000円」などなので、適宜加工しないと。。
- サムネイルはあまりないかも。。
- 情報量が多いが、複雑なXMLのため、xml2jsonを使っても大変。。
- 網羅率は高いが、応答速度が遅い。。
銃砲料は多いけど、サクッとは使いにくそう。。
応答速度も遅いので、Web検索とかには向かないかなぁ。。
クロールとかボットならいいかも。
使い方
import axios from "axios"; const xml2js = require("xml2js"); public async search(keyword: string) { // ベースURL const baseUrl = "https://iss.ndl.go.jp/api/sru"; const params = { operation: "searchRetrieve", query: `title=${keyword} AND mediatype=1`, // タイトルで検索。種別は本(1)のみ。 recordPacking: "xml" // "xml"形式を指定 }; const res = await axios.get(baseUrl, { params: params }); return await asyncParseString(res.data); } /** * xml2jsのparseStringをPromiseでラップ */ private asyncParseString(xml: string): Promise<any> { return new Promise(function(resolve, reject) { const options = { trim: true, explicitArray: false }; xml2js.parseString(xml, options, function(err, obj) { if (err) reject(err); resolve(obj); }); }); }
リクエスト/レスポンスは、国立国会図書館サーチ 外部提供インタフェース仕様書(第1.25版) 2018.09.25 (PDF)に記載されている。
PDF...PDF...
以上!!