PHPでWeb APIサービスを作成するには?基本の仕組みと実装例を解説
はじめに:広く使われているAPIの種類
Web APIにはさまざまな形式がありますが、中でもSOAPとRESTは最も広く利用されている技術です。本記事では、PHPを使ってシンプルなWeb APIサービスを構築するための基本的な考え方と、具体的な実装例をわかりやすく紹介します。
前提となるPHPクラスの準備
例として、データベース内のエントリを管理するためのPHPクラス「manage.php」が存在するとします。このクラスは次のように定義されています。
class manage {
private $entryId;
function __construct($entryId) {
$this->entryId = $entryId;
}
function deleteEntry() {
// データベースから $this->entryId を削除する
}
}
このクラスは、コンストラクタでエントリIDを受け取って内部に保持し、deleteEntry()メソッドを呼び出すことで該当エントリの削除処理を行う、シンプルな構造です。
同一サーバー上での利用方法
サーバー内の別スクリプトからこの機能を利用する場合、次のように記述します。
require_once('manage.php');
$m = new manage(12);
$m->deleteEntry();
require_onceでクラスファイルを読み込み、インスタンスを生成してメソッドを呼び出すだけなので、非常に簡単です。
外部サーバーからアクセスできるようにするには
しかし、このままの形では同じサーバー上のコードからしか利用できません。では、別のサーバーや外部アプリケーションからこの機能にアクセスするにはどうすればよいのでしょうか?
そこで有効なのが、バッファ(インターフェース)として動作する第3のファイルを作成する方法です。このファイルがHTTPリクエストを受け取り、内部のクラス処理へ橋渡しする役割を担います。
ここでは「api/delete.php」という名前のファイルを作成してみましょう。
require_once('manage.php');
if (hasPermission($_POST['api_key'])) {
$m = new manage($_POST['entry_id']);
$m->deleteEntry();
}
このスクリプトは、送信されてきたAPIキーをhasPermission()関数で検証し、正当な権限を持つリクエストのみ処理を実行します。これにより、不正なアクセスを防ぎながら安全に機能を公開できます。
APIの呼び出し方
クライアント側は、api_keyとentry_idをパラメータに含めたPOSTリクエストを、以下のURL宛てに送信します。
https://example.com/api/delete.php
こうすることで、外部のサーバーやアプリケーションからでも、あたかもローカルの関数を呼び出す感覚でデータベース操作を実行できるようになります。
実運用で押さえておきたいポイント
- レスポンス形式: 処理結果はJSON形式で返すのが一般的です。
json_encode()を活用し、成功・失敗のステータスやメッセージを返却しましょう。 - セキュリティ対策: APIキーの検証に加え、HTTPS通信の利用、入力値のバリデーション、レート制限の導入などを検討してください。
- RESTfulな設計: 削除操作にはDELETEメソッドを対応させるなど、HTTPメソッドを適切に使い分けると、より直感的で保守性の高いAPIになります。
まとめ
PHPでWeb APIサービスを作る基本は、「既存のクラスや機能をラップする公開用スクリプトを用意し、HTTPリクエスト経由でアクセスできるようにする」ことです。まずは今回のようなシンプルな構造を理解し、その後に認証強化やレスポンス設計などの要素を段階的に追加していくと、実用的なAPIへと発展させることができます。
-
Windowsでアプリケーションをサービスとして実行する方法(ユーザー定義サービスの作成手順)
Windows OSでアプリケーションを「サービス」として実行したい場合は、このチュートリアルの続きをお読みください。ご存じのとおり、Windowsの起動時にプログラムを実行する一般的な方法には、スタートアップフォルダにプログラムを配置する方法、Windowsレジストリを使って起動時に実行する方法、タスクスケジューラでアプリケーションを起動する方法などがあります。これらの方法は多くの場合有効ですが、ユーザーのログイン前や操作前に、アプリケーションをWindowsサービスとして起動しなければならないケースもあります。 このチュートリアルでは、Windows 10 / 8 / 7 および Wind
-
iPhoneで連絡先グループを作成・管理する方法【iCloud・アプリ対応】
頻繁に連絡を取る相手が多い場合、連絡先を効率的に管理する方法を見つけることが大切です。個人ごとではなく、グループ単位で定期的にやり取りする機会が多いなら、連絡先グループを設定するのが非常に有効な手段となります。連絡先を整理しやすくなるだけでなく、必要なときにすぐ目的の相手へ連絡できるようになるのもメリットです。この記事では、iPhoneで連絡先グループを作成・管理する方法を詳しく解説します。集まりやグループ旅行の計画を立てるとき、一人ひとりに個別にメッセージを送るのはかなりの時間がかかります。しかし残念ながら、iOSにはiPhone上で直接グループを作成する簡単な機能が用意されていません。幸い