Yii は、PHP をベースとした高性能 MVC フレームワークで、Web アプリケーションの迅速かつ効率的な開発をサポートする非常に豊富なツールと機能のセットを提供します。中でも、Yii フレームワークの RESTful API 機能は、ますます多くの開発者の注目と愛用を集めています。Yii フレームワークを使用すると、高性能で拡張しやすい RESTful インターフェイスを簡単に構築でき、開発に強力なツールを提供できるためです。 Web アプリケーションのサポート。
RESTful API は、HTTP プロトコルに基づく API 設計スタイルであり、スケーラブルで保守が容易な Web サービスを作成することを目的としています。この API スタイルは、独立したリクエストと応答のセットで構成されます。リクエストは HTTP メソッド、URI、メッセージ本文で構成され、応答は HTTP ステータス コードとメッセージ本文で構成されます。 REST はステートレスなアーキテクチャ スタイルであり、各リクエストにはサーバーが独自に理解できる十分な情報が含まれています。
Yii フレームワークは、開発者が強力な Web API を迅速に開発できるようにする RESTful API のサポートを提供します。 Yii フレームワークで RESTful API を実装するには、通常、ActiveController と UrlRule の 2 つの方法があります。
a. ActiveController
ActiveController は、コントローラー クラスに基づく実装であり、リソース コレクションの取得、単一リソースの取得、リソースの作成、リソースの更新とリソースの削除。開発者は、ActiveController クラスを継承し、対応するメソッドをオーバーロードするだけで、独自の API インターフェイスを実装できます。以下は簡単な例です:
class PostController extends ActiveController { public $modelClass = 'appmodelsPost'; }
ここでは、ActiveController クラスを継承し、$modelClass 属性を「appmodelsPost」に設定します。これにより、Post モデルの定義に基づいて、対応する CRUD インターフェイスが自動的に作成されます。たとえば、GET /posts をリクエストするとすべての投稿データが返され、POST /posts をリクエストすると新しい投稿が作成されます。
b. UrlRule
UrlRule は Yii フレームワークのルーティング ルールであり、これを通じて HTTP リクエストを対応するコントローラーとアクションにマッピングできます。 UrlRule を使用して RESTful API を実装する方法は比較的柔軟です。独自のニーズに応じてさまざまなルーティング ルールを定義できます。たとえば、次のコードを使用して /posts インターフェイスを定義できます:
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yiiestUrlRule', 'controller' => 'post'], ], ],
この構成を通じて, すべての記事のデータを取得するために / 投稿インターフェイスにアクセスできます。
RESTful API を開発する場合、セキュリティは非常に重要な問題です。 Yii フレームワークは、API インターフェースのセキュリティを保護するためのさまざまなセキュリティメカニズムを提供します。その中で最も一般的に使用されるのは、アクセスコントロールとベアラートークンです。
a. アクセス制御
アクセス制御は、認可ルールを通じて API へのユーザー アクセスを管理します。 Yii フレームワークは、RBAC (Role-Based Access Control) 権限管理モードを簡単に実装できる強力な権限制御クラスのセットを提供します。たとえば、次のコードを使用して、コントローラでアクセス制御を定義できます。
public function behaviors() { $behaviors = parent::behaviors(); $behaviors['access'] = [ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => ['create', 'update'], 'allow' => true, 'roles' => ['@'], ], [ 'actions' => ['view', 'index'], 'allow' => true, 'roles' => ['?', '@'], ], ], ]; return $behaviors; }
ここでは、さまざまな操作とユーザー権限に対応する 2 つのルールを定義します。たとえば、create メソッドと update メソッドにはアクセスする前にユーザーがログインする必要がありますが、view メソッドと Index メソッドには匿名ユーザーとログイン ユーザーがアクセスできます。
b. ベアラー トークン
ベアラー トークンは、OAuth2 に基づく ID 認証方法であり、API リクエストで ID 資格情報として access_token を運ぶことができます。 Yii フレームワークは、Bearer Token ID 認証を簡単に実装できる 2 つのメソッド、BasiAuth と OAuth2 を提供します。たとえば、次のコードを使用して、アプリケーションで OAuth2 認証を有効にできます。
'authManager' => [ 'class' => 'yiiiltersuthQueryParamAuth', 'tokenParam' => 'accessToken', ],
次に、次のような API 呼び出しを行うときに、URL 内の資格情報として access_token を運ぶことができます。
# 概要以上がYii フレームワークでの RESTful API 開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。