インターネット技術の発展に伴い、Web API は多くのアプリケーションの中核になりました。モバイル アプリ、クラウド コンピューティング、SaaS アプリケーションのいずれを開発している場合でも、Web API は重要な役割を果たします。効率的な API を設計する方法は、Web 開発者が習得する必要があるテクノロジーの 1 つになっています。この記事では、PHP を使用して効率的な API を設計するテクニックを紹介します。
RESTful API は、人気のある Web API 設計スタイルです。 HTTP プロトコルに基づいており、GET、POST、PUT、DELETE などの HTTP メソッドを使用してリソースを操作し、HTTP ステータス コードと JSON/XML 形式を使用して結果を返します。
RESTful API を設計するときは、次の仕様に従う必要があります:
たとえば、ユーザー情報を取得するには、次の HTTP メソッドと URL を使用できます。
RESTful API を使用して API を設計すると、次の利点が得られます:
API を設計するとき、セキュリティは考慮する必要がある問題です。また、認証は API における最も重要なセキュリティ対策の 1 つです。
JSON Web Token (JWT) は、サーバー間で情報を簡単に転送するためのアクセス トークンを作成するための JSON ベースの標準です。認証に JWT を使用すると、次の利点が得られます:
認証に JWT を使用するコード例を次に示します。
<?php use FirebaseJWTJWT; //生成JWT $key = "secret_key"; $payload = array( "sub" => "123", "name" => "John Doe", "iat" => time(), "exp" => time() + 3600 ); $jwt = JWT::encode($payload, $key); //验证JWT try { $decoded = JWT::decode($jwt, $key, array('HS256')); print_r($decoded); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), " "; }
API では、データベース Itは一般的に使用されるデータ保存方法です。 PHP を使用する場合、ORM (オブジェクト リレーショナル マッピング) はデータベース操作の一般的なテクノロジの 1 つです。 ORM はデータベース操作をオブジェクト指向プログラミングに変換できます。
ORM を使用する場合は、次の仕様に従う必要があります:
以下は、データベース操作に PHP の ORM フレームワーク PDO を使用したコード例です。
<?php // 创建PDO对象 $db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 查询 $stmt = $db->query('SELECT * FROM users'); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // 插入 $stmt = $db->prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); $name = 'John Doe'; $email = 'john.doe@email.com'; $stmt->execute(); // 更新 $stmt = $db->prepare("UPDATE users SET name=:name WHERE id=:id"); $stmt->bindParam(':name', $name); $stmt->bindParam(':id', $id); $name = 'Jane Doe'; $id = 1; $stmt->execute(); // 删除 $stmt = $db->prepare("DELETE FROM users WHERE id=:id"); $stmt->bindParam(':id', $id); $id = 2; $stmt->execute();
キャッシュ API のパフォーマンスを向上させ、応答時間を短縮し、サーバーの負荷を軽減できます。 PHPには内蔵キャッシュと外部キャッシュの2種類があり、アプリケーションがキャッシュする必要があるデータやサーバーの負荷に応じてどちらを使用するかが決まります。
組み込みキャッシュを使用すると、次の利点が得られます:
以下は、PHP の組み込みキャッシュ Memcached を使用したキャッシュのコード例です:
<?php $cache = new Memcached(); $cache->addServer('localhost', 11211); // 从缓存中获取数据 if ($result = $cache->get('data')) { echo 'Data from cache: ' . $result; } else { // 从数据库中获取数据 $db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $stmt = $db->query('SELECT * FROM data'); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $result = json_encode($rows); // 将数据保存到缓存中 $cache->set('data', $result, 3600); echo 'Data from database: ' . $result; }
外部キャッシュを使用すると、次の利点が得られます:
次に、キャッシュに Redis を使用するコード例を示します。
<?php $redis = new Redis(); $redis->connect('localhost', 6379); // 从缓存中获取数据 if ($result = $redis->get('data')) { echo 'Data from cache: ' . $result; } else { // 从数据库中获取数据 $db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); $stmt = $db->query('SELECT * FROM data'); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $result = json_encode($rows); // 将数据保存到缓存中 $redis->set('data', $result); echo 'Data from database: ' . $result; }
概要
この記事では、PHP を使用して効率的な API を設計する方法のテクノロジを紹介します。 RESTful API、JWT 認証、ORM データベース操作およびキャッシュを使用すると、API のパフォーマンスとセキュリティが大幅に向上し、API のスケーラビリティが向上し、大規模なアプリケーションに適しています。
以上がPHP を使用して効率的な API を設計するためのテクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。