ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して効率的な API を設計するためのテクニック

PHP を使用して効率的な API を設計するためのテクニック

WBOY
WBOYオリジナル
2023-06-17 09:00:10768ブラウズ

インターネット技術の発展に伴い、Web API は多くのアプリケーションの中核になりました。モバイル アプリ、クラウド コンピューティング、SaaS アプリケーションのいずれを開発している場合でも、Web API は重要な役割を果たします。効率的な API を設計する方法は、Web 開発者が習得する必要があるテクノロジーの 1 つになっています。この記事では、PHP を使用して効率的な API を設計するテクニックを紹介します。

  1. RESTful API 設計仕様に従う

RESTful API は、人気のある Web API 設計スタイルです。 HTTP プロトコルに基づいており、GET、POST、PUT、DELETE などの HTTP メソッドを使用してリソースを操作し、HTTP ステータス コードと JSON/XML 形式を使用して結果を返します。

RESTful API を設計するときは、次の仕様に従う必要があります:

  • URL を使用してリソースを表し、HTTP メソッドを使用してリソースを操作します。
  • データ形式を使用します。 JSON や XML など データの送信;
  • HTTP ステータス コードを使用して操作結果を示します。

たとえば、ユーザー情報を取得するには、次の HTTP メソッドと URL を使用できます。

  • GET /users/{id}: 指定したユーザー情報を取得します。 id;
  • POST /users: 新しいユーザーの作成;
  • PUT /users/{id}: 指定された ID のユーザー情報を変更;
  • DELETE /users/ {id}: 指定された ID ユーザーを削除します。

RESTful API を使用して API を設計すると、次の利点が得られます:

  • 理解しやすく、使いやすい;
  • HTTP キャッシュを使用してパフォーマンスを向上できる;
  • HTTP ステータス コードとエラー メッセージは、問題の診断に使用できます。
  1. 認証に JWT を使用する

API を設計するとき、セキュリティは考慮する必要がある問題です。また、認証は API における最も重要なセキュリティ対策の 1 つです。

JSON Web Token (JWT) は、サーバー間で情報を簡単に転送するためのアクセス トークンを作成するための JSON ベースの標準です。認証に JWT を使用すると、次の利点が得られます:

  • JWT は標準ベースであり、実装と使用が簡単です。
  • JWT は軽量で、HTTP ヘッダーを介して送信できます。
  • 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(), "
";
}
  1. データベース操作に ORM を使用する

API では、データベース Itは一般的に使用されるデータ保存方法です。 PHP を使用する場合、ORM (オブジェクト リレーショナル マッピング) はデータベース操作の一般的なテクノロジの 1 つです。 ORM はデータベース操作をオブジェクト指向プログラミングに変換できます。

ORM を使用する場合は、次の仕様に従う必要があります:

  • 各データベース テーブルを PHP クラスとしてマッピングする;
  • 各テーブルの列をクラス属性としてマッピングする;
  • 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();
  1. キャッシュを使用して API のパフォーマンスを向上させます

キャッシュ 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。