出版社検索API

APIを作成したので公開します。

目的

こちらのサイトは、日本でのISBNの総本山であり、登録業者について最も信頼できる(はずの)情報源ですが、いかんせん、得られるデータがプログラム的に扱い易いとは言えません。
ですので、このCGIにアクセスしてデータをXMLの形式にして返すAPIを作成しました。

使い方

上記URLに対し、最低限、二つのパラメータを指定します。

method
publisher_code, isbn10, isbn13, jan, eanのいずれかを指定します。
code
methodで指定した形式の数値を指定します。

※出版社名検索などには対応しておりません。手元にある本のISBNコードを読んで、その出版社の詳しい情報を知るような用途を想定しています。

mode
cache, auto, forceのいずれかを指定します。指定しなかった場合はautoが選択されます。

レスポンスを早くするために、一度取得したデータはキャッシュに蓄えるようにしています。

  • cacheを指定すると、このキャッシュのみを調べ、なかった場合はエラーを返します。
  • forceを指定すると、常に最新の情報を調べ、キャッシュを更新します。(時間と負荷がかかります)
  • autoを指定すると、キャッシュを調べてキャッシュがあればキャッシュを返し、なければforceに移行します。

返ってくるデータについて

成功例)※人間に読みやすいようにタブを挿入しています。実際にはタグ間のスペースはありません。
http://roboko.s212.xrea.com/publisher.cgi?method=publisher_code&code=00

<?xml version="1.0"?>
<responce>
	<request>
		<method>publisher_code</method>
		<code>00</code>
		<mode>auto</mode>
		<date>2007-07-03 19:12:13</date>
	</request>
	<publisher>
		<base_data>
			<publisher_codes>
				<publisher_code>00</publisher_code>
			</publisher_codes>
			<name>(株)岩波書店</name>
			<name_pronounce>イワナミシヨテン</name_pronounce>
			<place>101-8002
東京都千代田区
一ツ橋2−5−5</place>
			<tel_number>03-5210-4000</tel_number>
			<url>http://www.iwanami.co.jp</url>
			<stop_entry></stop_entry>
			<renewal_entry>2006/08/31</renewal_entry>
			<sellway>取次経由書店販売</sellway>
			<comment_a>*販売情報(読者向)FAX注文可049-287-5742</comment_a>
			<comment_b></comment_b>
		</base_data>
		<for_trader>
			<trade_code>0365</trade_code>
			<seller_name></seller_name>
			<tel_order></tel_order>
			<tel_number>049-287-5741</tel_number>
			<fax_order></fax_order>
			<fax_number>049-287-5742</fax_number>
			<site_order>不可</site_order>
		</for_trader>
		<for_customer>
			<tel_order></tel_order>
			<tel_number>049-287-5721</tel_number>
			<site_order></site_order>
		</for_customer>
	</publisher>
	<last_update>2007-07-03 19:12:13.61014</last_update>
	<original_data><![CDATA[http://www.isbn-center.jp/cgi-bin/isbndb/isbn.cgi?sub=search&isbn=00]]></original_data>
</responce>

失敗例)

<?xml version="1.0"?>
<responce>
	<request>
		<method></method>
		<code></code>
		<mode>auto</mode>
		<date>2007-07-03 19:25:26</date>
	</request>
	<error>正しいメソッドが指定されていません。(publisher_code, isbn10, isbn13, jan, eanのいずれか)</error>
</responce>

2007-10-03 追記

うっかり削除してしまっていたのを修復しました。