PHPでデータベースの情報を元にAPIを発行するための基本的な流れは以下の通りです。ここでは、MySQLデータベースから情報を取得し、その情報をJSON形式で返すAPIを構築する例を示します。
1. データベース接続の設定
まず、データベースに接続するための設定を行います。config.php というファイルにデータベース接続情報を保存し、他のファイルから呼び出せるようにします。
// config.php
<?php
$host = 'localhost';
$dbname = 'your_database_name';
$user = 'your_username';
$password = 'your_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit();
}
?>
2. APIエンドポイントの作成
次に、APIエンドポイントを作成します。ここでは、データベースの情報を取得し、JSON形式で返すエンドポイントを作成します。
// api.php
<?php
require 'config.php';
// SQLクエリを作成し、データベースから情報を取得します。
$query = "SELECT * FROM your_table_name";
$stmt = $pdo->prepare($query);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// JSON形式でデータを出力します。
header('Content-Type: application/json');
echo json_encode($results);
?>
3. APIにアクセスする
ブラウザやHTTPクライアント(例: Postman)で api.php にアクセスすることで、データベースの情報がJSON形式で表示されます。
http://yourdomain.com/api.php
4. APIの拡張
この基本的なAPIをもとに、例えばリクエストパラメータに応じてデータをフィルタリングしたり、POSTリクエストを処理してデータベースに新しいデータを追加したりすることができます。
例: クエリパラメータを使ったデータフィルタリング
// api.php
<?php
require 'config.php';
// クエリパラメータを取得します。
$param = isset($_GET['param']) ? $_GET['param'] : '';
$query = "SELECT * FROM your_table_name WHERE your_column_name = :param";
$stmt = $pdo->prepare($query);
$stmt->bindValue(':param', $param);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
header('Content-Type: application/json');
echo json_encode($results);
?>
このようにすることで、api.php?param=value のような形でAPIを呼び出すと、特定の条件に基づいたデータが返されます。
5. セキュリティとエラーハンドリング
最後に、APIを運用する際にはセキュリティ面とエラーハンドリングに十分な注意を払う必要があります。入力値のバリデーションやSQLインジェクション対策を行い、エラーメッセージを適切に処理することが重要です。
これで、PHPでデータベース情報をもとにAPIを発行する基本的な方法が分かりました。APIを拡張し、用途に応じてカスタマイズすることが可能です。