Commit 35818654 by Qiang Xue

Merge pull request #6675 from softark/docs-guide-ja-rest-resources

Docs guide ja rest resources [ci skip]
parents 565abb54 c663e9f3
...@@ -129,7 +129,7 @@ RESTful ウェブサービス ...@@ -129,7 +129,7 @@ RESTful ウェブサービス
---------------------- ----------------------
* [クイックスタート](rest-quick-start.md) * [クイックスタート](rest-quick-start.md)
* **翻訳中** [リソース](rest-resources.md) * [リソース](rest-resources.md)
* **翻訳中** [コントローラ](rest-controllers.md) * **翻訳中** [コントローラ](rest-controllers.md)
* **翻訳中** [ルーティング](rest-routing.md) * **翻訳中** [ルーティング](rest-routing.md)
* **翻訳中** [レスポンスの書式設定](rest-response-formatting.md) * **翻訳中** [レスポンスの書式設定](rest-response-formatting.md)
......
...@@ -4,16 +4,16 @@ ...@@ -4,16 +4,16 @@
Yii は、RESTful ウェブサービス API を実装する仕事を簡単にするために、一揃いのツールを提供しています。 Yii は、RESTful ウェブサービス API を実装する仕事を簡単にするために、一揃いのツールを提供しています。
具体的に言えば、RESTful API に関する次の機能をサポートしています。 具体的に言えば、RESTful API に関する次の機能をサポートしています。
* [アクティブレコード](db-active-record.md) のための共通 API をサポートした迅速なプロトタイプ作成; * [アクティブレコード](db-active-record.md) のための共通 API をサポートした迅速なプロトタイプ作成
* レスポンス形式のネゴシエーション (デフォルトで JSON と XML をサポート); * レスポンス形式のネゴシエーション (デフォルトで JSON と XML をサポート)
* 出力フィールドの選択をサポートした、カスタマイズ可能なオブジェクトのシリアライゼーション; * 出力フィールドの選択をサポートした、カスタマイズ可能なオブジェクトのシリアライゼーション
* コレクションデータとバリデーションエラーの適切な書式設定; * コレクションデータとバリデーションエラーの適切な書式設定
* [HATEOAS](http://en.wikipedia.org/wiki/HATEOAS) のサポート; * [HATEOAS](http://en.wikipedia.org/wiki/HATEOAS) のサポート
* HTTP 動詞を適切にチェックする効率的なルーティング; * HTTP 動詞を適切にチェックする効率的なルーティング
* `OPTIONS` および `HEAD` 動詞のサポートを内蔵; * `OPTIONS` および `HEAD` 動詞のサポートを内蔵
* 認証と権限付与; * 認証と権限付与
* データキャッシュと HTTP キャッシュ; * データキャッシュと HTTP キャッシュ
* 転送レート制限; * 転送レート制限
以下においては、例を使って、どのようにして最小限のコーディング労力で一組の RESTful API を構築することが出来るかを説明します。 以下においては、例を使って、どのようにして最小限のコーディング労力で一組の RESTful API を構築することが出来るかを説明します。
...@@ -80,15 +80,15 @@ API 縺 JSON 蠖「蠑上〒蜈・蜉帙ョ繝シ繧ソ繧貞女縺大叙繧九%縺ィ縺悟譚・繧九h縺↓ ...@@ -80,15 +80,15 @@ API 縺 JSON 蠖「蠑上〒蜈・蜉帙ョ繝シ繧ソ繧貞女縺大叙繧九%縺ィ縺悟譚・繧九h縺↓
上記で示した最小限の労力によって、ユーザのデータにアクセスする RESTful API を作成する仕事は既に完成しています。 上記で示した最小限の労力によって、ユーザのデータにアクセスする RESTful API を作成する仕事は既に完成しています。
作成した API は次のものを含みます。 作成した API は次のものを含みます。
* `GET /users`: 全てのユーザをページごとに一覧する; * `GET /users`: 全てのユーザをページごとに一覧する
* `HEAD /users`: ユーザ一覧の概要を示す; * `HEAD /users`: ユーザ一覧の概要を示す
* `POST /users`: 新しいユーザを作成する; * `POST /users`: 新しいユーザを作成する
* `GET /users/123`: ユーザ 123 の詳細を返す; * `GET /users/123`: ユーザ 123 の詳細を返す
* `HEAD /users/123`: ユーザ 123 の概要を示す; * `HEAD /users/123`: ユーザ 123 の概要を示す
* `PATCH /users/123``PUT /users/123`: ユーザ 123 を更新する; * `PATCH /users/123``PUT /users/123`: ユーザ 123 を更新する
* `DELETE /users/123`: ユーザ 123 を削除する; * `DELETE /users/123`: ユーザ 123 を削除する
* `OPTIONS /users`: エンドポイント `/users` に関してサポートされている動詞を示す; * `OPTIONS /users`: エンドポイント `/users` に関してサポートされている動詞を示す
* `OPTIONS /users/123`: エンドポイント `/users/123` に関してサポートされている動詞を示す; * `OPTIONS /users/123`: エンドポイント `/users/123` に関してサポートされている動詞を示す
> Info|情報: Yii は、エンドポイントとして使用されるコントローラの名前を自動的に複数形にします。 > Info|情報: Yii は、エンドポイントとして使用されるコントローラの名前を自動的に複数形にします。
> これは [[yii\rest\UrlRule::$pluralize]] プロパティを使って構成することが可能です。 > これは [[yii\rest\UrlRule::$pluralize]] プロパティを使って構成することが可能です。
......
...@@ -441,13 +441,13 @@ public function fields() ...@@ -441,13 +441,13 @@ public function fields()
]; ];
} }
// いくつかのフィールドを除去する方法。親の実装を継承しつつ、慎重に扱うべきフィールドは // いくつかのフィールドを除去する方法。親の実装を継承しつつ、公開すべきでないフィールドは
// 除外したいときに適している。 // 除外したいときに適している。
public function fields() public function fields()
{ {
$fields = parent::fields(); $fields = parent::fields();
// 慎重に扱うべき情報を含むフィールドを削除する // 公開すべきでない情報を含むフィールドを削除する
unset($fields['auth_key'], $fields['password_hash'], $fields['password_reset_token']); unset($fields['auth_key'], $fields['password_hash'], $fields['password_reset_token']);
return $fields; return $fields;
...@@ -455,7 +455,7 @@ public function fields() ...@@ -455,7 +455,7 @@ public function fields()
``` ```
> Warning|警告: 既定ではモデルの全ての属性がエクスポートされる配列に含まれるため、データを精査して、 > Warning|警告: 既定ではモデルの全ての属性がエクスポートされる配列に含まれるため、データを精査して、
> 慎重に扱うべき情報が含まれていないことを確認すべきです。そういう情報がある場合は、 > 公開すべきでない情報が含まれていないことを確認すべきです。そういう情報がある場合は、
> `fields()` をオーバーライドして、除去すべきです。上記の例では、`auth_key`、`password_hash` > `fields()` をオーバーライドして、除去すべきです。上記の例では、`auth_key`、`password_hash`
> および `password_reset_token` を選んで除去しています。 > および `password_reset_token` を選んで除去しています。
......
...@@ -261,6 +261,29 @@ if (!$model && null === $event) ...@@ -261,6 +261,29 @@ if (!$model && null === $event)
throw new Exception('test'); throw new Exception('test');
``` ```
そうすることが合理的な場合は、`return` の後の `else` は出来れば避けてください。
[ガード条件](http://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html) を使用しましょう。
```php
$result = $this->getResult();
if (empty($result)) {
return true;
} else {
// $result を処理
}
```
これは、次の方が良いです。
```php
$result = $this->getResult();
if (empty($result)) {
return true;
}
// $result を処理
```
#### switch #### switch
switch には下記の書式を使用します。 switch には下記の書式を使用します。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment