毎年この時期は3年生の情報セミナー2の時間を利用して好きなものを作るようにしています。API)の実装を行ってみました。処理の流れを図示したものが下記になります。0~6までの処理内容を書き出してみます。openBD.jpから全書誌情報をダウンロードします。gatewayにPOST(GETでもいいはず)できる仕様であれば言語は問いません。サンプルとして,JavaScriptからXMLHttpRequest関数を使って実装してみました。gatewayに検索情報をPOSTします。この際,Webフォームを設置してあるサーバのドメイン向けに発行したAPIキーも一緒に送付する必要があります。gatewayでは,受診したAPIキーをRefererと合わせて認証し,通った場合のみ検索を実行します。gatewayに送られます。検索データをJSON形式に加工してWebサーバに送付します。JSONデータをどのように表示するかはWebサーバ側で決めます。検索結果をJSON形式にした理由は,元々のopenBDの書誌情報がJSONで記述されているからです。今のところ混ぜて使う予定はありませんが,「検索機能付きopenbd.jpもどき」のようなものを作る際には楽になるかと。トラブったのは,XMLHttpRequest関数が,デフォルトでは別ドメインへのアクセスを許容していないという仕様の問題。アクセス許可ドメイン”をHTTPヘッダに追記すればよいとのことなので,JSON検索結果を返す直前に発行するようにしました。これで別ドメインからのアクセスがAJAXで可能になりました(その分,セキュリティホールを増やしているとも言える)。APIっぽく実装出来たハズです。外部公開も可能な状態ではありますが,サーバの付加やopenBDの今後を見ながら考えていくことにしたいところです。APIを通じて世評と組み合わせられるような仕組みに使えればいいかなぁと夢想中。