Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Delphi

Google Book APIを使ってISBNコードから書籍情報を取得する

Author: Shinji Chikugi

筑木です。今回はWebAPIへのアクセスの例として、Google Books APIsを使ってISBNコードから書籍情報を取得してみます。

応用として、TCameraComponentとZXingを使って画像のバーコードから書籍のISBNコードを読み取り、Google Books APIsで書籍情報を取得、それをDBに登録して蔵書管理アプリみたいなものが作れます。

Google Books APIsにISBNコードを投げてその結果を取得するのは、TRESTRequest、TRESTClient、TRESTResponseを使えば非常に簡単です。
このようにフォームにUIであるTEdit,TLabel,TMemo,TImageと、Google Books APIsとやりとりをするためのTRESTRequest、TRESTClient、TRESTResponse、TIdHTTPを配置します。

配置したTRESTRequestのClientとResponseプロパティにそれぞれTRESTClient、TRESTResponseを設定します。

実際にAPIを呼び出してみましょう。TRESTRequestとTRESTClientにパラメータを設定し、Executeメソッドを呼ぶだけです。

APIの詳細は以下のURLを参照してください。今回は単純にパラメータとしてISBNコードを渡すだけです。

https://developers.google.com/books/docs/v1/reference/

RESTRequestのAfterExecuteイベントが発生すると結果が取得できますので、戻ってきたJSONをパースします。
JSONの書式は以下のURLを参照してください。
https://developers.google.com/books/docs/v1/reference/volumes

書影のサムネイルはTIdHTTPを使って改めて取得します。結果はTMemoryStreamに保存してTImageに設定するだけです。

クラウド系のサービスはリクエスト結果がJSONで帰ってくることが多いのですが、Delphi/C++Builderのコンポーネントを使えば簡単に結果のパースが可能です。古いDelphiやC++BuilderのバージョンではJSONなどのパースも自前で行うか、フリーのライブラリを使う必要がありますが、最新のバージョンでは手軽にWeb サービスを利用できるようになっています。

サンプルコードをGitHubにアップしました。https://github.com/schikugi/GoogleBooksAPIDel

参考にしてください。

 

2018年4月23日~5月4日までの月~金曜に毎日ブログを更新。Delphi / C++Builderに関する技術記事からエンジニアの日常まで、さまざまな話題を投稿します。お楽しみに!

日本人スタッフブログを一覧表示できる、こちらのページをブックマークしてください。


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES