16章ウェブサービス

 歴史を振り返ると、2つのシステムの間での通信が必要になるたびに、新しいプロトコルが作られてきました(たとえばメールの送信にはSMTP、受信にはPOP3など。各種データベースのサーバー/クライアント間でも、多数のプロトコルが作られています)。ウェブサービスの考え方は、XMLとHTTPに基づいて、リモートプロシージャ呼び出しの標準化された仕組みを提供することで、新しいプロトコルを作らなくても済むようにする、というものです。

 ウェブサービスを使えば、異なるシステムどうしを容易に統合できます。既存の図書館システム用のウェブインターフェイスを書いているとしましょう。データベースのテーブルは複雑な構造になっており、そのテーブルを駆使するビジネスロジックの大半がプログラムのコードに組み込まれています。しかも、そのプログラムはC++で書かれています。さあどうしましょう? ビジネスロジックをぜんぶPHPで書きなおすという選択肢もありますが、その場合、複雑なテーブルを正しい手順で扱わないといけません。それ以外の方法もあります。C++でちょっとしたコードを書いて、図書館の各種処理(書籍の貸し出し、返却日の確認、延滞料の確認など)をウェブサービスとして公開するという方法です。そうすれば、PHP側のコードは単純にウェブのフロントエンドだけを扱えばよくなります。サービスを呼び出すだけで、複雑な処理は全部まかせてしまえるのです。

16.1 RESTクライアント

 RESTfulウェブサービスという用語には、厳密な定義はありません。HTTPを使って、REST(Representational State Transfer)原則に従ったウェブAPIを実装したサービス全般を指す言葉です。RESTfulウェブサービスでは、さまざまなリソース群を基本的な操作で扱います。クライアントからリソースを扱うときには、提供されるAPIを利用します。 ...

Get プログラミングPHP 第4版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.