ハイフン無しのISBNを渡すとハイフン付きのJSONPを返すサービスを作ってみた
中身的にはBusiness::ISBN - work with International Standard Book Numbers - metacpan.orgを呼んでJSONPにして返すだけですが、ニッチな需要があるのでw
2008年10月ぐらい?のデータを元にしているので全部のパターンには対応出来ていないのが残念ではありますが
サンプル画面
http://natu.blue.coocan.jp/isbntest.htmlにアクセス
-
- 入力エリアにISBNを入力(ISBN-10またはISBN-13)
-
- ISBNのチェックデジットが合ってなくても補正される
-
- 桁数が合ってないとエラーになる
-
- 99945(Namibia)以降が対応されてない
JSONPのURL
http://natu-n.com/cgi/ISBN.cgi?isbn=ISBN-13(10)&callback=コールバック名 ただしcallbackはオプション
レスポンス例
- ISBN(10桁または13桁)を渡して取得する
callback({ "isbn10" : "4150116784", "isbn10e" : "4-15-011678-4", "isbn13" : "9784150116781", "isbn13e" : "978-4-15-011678-1", "success" : true })
- 与えたISBNが正しくない(桁数)とfalseで帰る
callback({ "success" : false })
- callback=コールバック名で任意のコールバック名で取得出来る
callbacks({ "isbn10" : "4150400083", "isbn10e" : "4-15-040008-3", "isbn13" : "9784150400088", "isbn13e" : "978-4-15-040008-8", "success" : true })
サンプルソース(HTML+JS)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="lib/jquery-1.2.6.pack.js"></script> <title>TEST</title> <script type="text/javascript"> /* <![CDATA[ */ $(document).ready(function() { $("#isbn").keydown(function(e) { if (e.which == 13) { return false; } }); $("#btn").click(function() { $("#success").text(""); $("#isbn10").text(""); $("#isbn10e").text(""); $("#isbn13").text(""); $("#isbn13e").text(""); $.ajax({ url : "http://natu-n.com/cgi/ISBN.cgi", dataType : "jsonp", data : { isbn : $("#isbn").val() }, success : function(json){ // ロード完了時にここが呼ばれる $("#success").text(json.success); if ( json.success == true ) { $("#isbn10").text(json.isbn10); $("#isbn10e").text(json.isbn10e); $("#isbn13").text(json.isbn13); $("#isbn13e").text(json.isbn13e); } }, error : function(){ alert('error'); } }); }); }); /* ]]> */ </script> </head> <body> <h2>ISBNを入力(10または13桁)</h2> <form id="iform" name="iform"> <input type="text" id="isbn" name="isbn" size="13"> <input type="button" id="btn" value="変換"> </form> <table> <tdoby> <tr><td>status</td><td>:</td><td id="success"></td></tr> <tr><td>isbn10</td><td>:</td><td id="isbn10" ></td></tr> <tr><td>isbn10e</td><td>:</td><td id="isbn10e"></td></tr> <tr><td>isbn13</td><td>:</td><td id="isbn13" ></td></tr> <tr><td>isbn13e</td><td>:</td><td id="isbn13e"></td></tr> </tbody> </table> </td> </body> </html>