Yii2を使用して安らかなAPIを構築するために、コントローラーに新しいアクションを追加する方法の良い例はありますか?ありがとう。
CRUDの横に追加のアクションを求めるのか、CRUDだけを求めるのかわからないので、両方のケースについて詳しく説明します。
まず、フレームワークには、典型的なRESTful API操作とURL管理を提供する_\yii\rest\ActiveController
_が含まれています。
基本的に、コントローラーはCRUD操作を次のように事前定義します。
_POST /resource
_-> actionCreate
->リソースを作成します
_GET /resource/{id}
_-> actionView
->リソースを読み取ります
_PUT, PATCH /resource/{id}
_-> actionUpdate
->リソースを更新します
_DELETE /resource/{id}
_-> actionDelete
->リソースを削除
_GET /resource
_-> actionIndex
->すべてのリソースを一覧表示します
URLルーティングルールとアクションの定義は、_\yii\rest\ActiveController
_、_\yii\rest\UrlRule
_、およびそれぞれの_\yii\rest\*Action
_にあります。
次に、コントローラーにRESTful APIを追加する場合は、追加のactionXxxxx()
を記述し、構成でurlManager
の下に次のURLルールを追加します。
_'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => ['resource'],
'pluralize' => false,
'extraPatterns' => [
'POST {id}/your_preferred_url' => 'xxxxx', // 'xxxxx' refers to 'actionXxxxx'
],
],
],
],
_
事実上、これにより新しいルーティングルールが生成され、_POST /resource/{id}/your_preferred_url
_を要求すると、ResourceControllerのactionXxxxx
が呼び出されます。
これはYii 2高度なアプリケーションテンプレートを使用した良い例です
https://github.com/deerawan/yii2-advanced-api
このプロジェクトの詳細 http://budiirawan.com/setup-restful-api-yii2/
また、必要に応じてYii 2基本アプリケーションテンプレートを使用できます。あなたがしなければならないのは、この種のフォルダー構造に従うことです(バージョンのv1) (Yii doc -Aモジュールはサブモジュールで構成されているかもしれません。)(GiovanniDerks-バックエンドサブモジュール)
-modules
--api
---v1
----controllers
----models