Help us understand the problem. What is going on with this article?

openBD の API で ISBN をキーに書誌情報を取得する ( jQuery 使用 )

More than 1 year has passed since last update.

openBD プロジェクトとは?

書誌情報・書影を, だれでも自由に使える高速な API を提供しているプロジェクトです。株式会社カーリル版元ドットコムにより運営されています。
特徴は何と言っても API の応答速度。書誌情報 1 件あたり 1 ミリ秒以下という驚異的な応答速度を誇っているとか。ちゃんと計測したわけではありませんが, 体感的には Google Books API よりも高速です。

公式サイト
openBD : https://openbd.jp

API の使用方法

以下のように ISBN を指定するだけで JSON データが返ってきます。

https://api.openbd.jp/v1/get?isbn=[ISBN]

サンプル
https://api.openbd.jp/v1/get?isbn=9784047914742

コピペで動くコードサンプルを貼っておきます。
そのままエディタにコピペして, index.html として保存。それをブラウザで開けば動きます。( Firefox 57.0.2 にて確認 )

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <title>書誌情報取得サンプル</title>

    <!-- Scripts -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>

    <div>
        ISBN13:<input id="isbn" type="text" name="isbn" value="" autofocus>
        <button id="getBookInfo" class="btn btn-default">書籍情報取得</button>
    </div>

    <div>
        <p id="thumbnail"></p>
    </div>

    <div>
        書籍名:<input id="title" type="text" name="title" value="">
    </div>

    <div>
        出版社:<input id="publisher" type="text" name="publisher" value="" >
    </div>

    <div>
        巻:<input id="volume" type="text" name="volume" value="" >
    </div>

    <div>
        シリーズ:<input id="series" type="text" name="series" value="" >
    </div>

    <div>
        著者:<input id="author" type="text" name="author" value="" >
    </div>

    <div>
        出版日:<input id="pubdate" type="text"  name="pubdate" value="" >
    </div>

    <div>
        サムネイルURI:<input id="cover" type="text" name="cover" value="" >
    </div>

    <div>
        詳細:<textarea id="description" type="text" name="description" value="" ></textarea>
    </div>

    <script>
        $(function() {
            $('#getBookInfo').click( function( e ) {
                e.preventDefault();
                const isbn = $("#isbn").val();
                const url = "https://api.openbd.jp/v1/get?isbn=" + isbn;

                $.getJSON( url, function( data ) {
                    if( data[0] == null ) {
                        alert("データが見つかりません");
                    } else {
                        if( data[0].summary.cover == "" ){
                            $("#thumbnail").html('<img src=\"\" />');
                        } else {
                            $("#thumbnail").html('<img src=\"' + data[0].summary.cover + '\" style=\"border:solid 1px #000000\" />');
                        }
                        $("#title").val(data[0].summary.title);
                        $("#publisher").val(data[0].summary.publisher);
                        $("#volume").val(data[0].summary.volume);
                        $("#series").val(data[0].summary.series);
                        $("#author").val(data[0].summary.author);
                        $("#pubdate").val(data[0].summary.pubdate);
                        $("#cover").val(data[0].summary.cover);
                        $("#description").val(data[0].onix.CollateralDetail.TextContent[0].Text);
                    }
                });
            });
        });
    </script>

</body>
</html>

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした