Commit ede4d8ee by Dmitry Korolev

small translation fixes

parent abbdf10c
...@@ -4,26 +4,26 @@ ...@@ -4,26 +4,26 @@
При обработке RESTful API запросов приложение обычно выполняет следующие шаги, связанные с форматированием ответа: При обработке RESTful API запросов приложение обычно выполняет следующие шаги, связанные с форматированием ответа:
1. Определяет различные факторы, которые могут повлиять на формат ответа, такие как media type, язык, версия и т.д. 1. Определяет различные факторы, которые могут повлиять на формат ответа, такие как media type, язык, версия и т.д.
Этот процесс также известен как [обсуждение содержимого](http://en.wikipedia.org/wiki/Content_negotiation). Этот процесс также известен как [согласование содержимого](http://en.wikipedia.org/wiki/Content_negotiation).
2. Конвертирует объекты ресурсов в массивы, как описано в секции [Ресурсы](rest-resources.md). 2. Конвертирует объекты ресурсов в массивы, как описано в секции [Ресурсы](rest-resources.md).
Это задача для [[yii\rest\Serializer]]. Это задача для [[yii\rest\Serializer]].
3. Конвертирует массивы в строке в формате, определенном на этапе обсуждения содержимого. Это задача для 3. Конвертирует массивы в строке в формате, определенном на этапе согласование содержимого. Это задача для
[[yii\web\ResponseFormatterInterface|форматера ответов]], регистрируемого с помощью компонента приложения [[yii\web\ResponseFormatterInterface|форматера ответов]], регистрируемого с помощью компонента приложения
[[yii\web\Response::formatters|response]]. [[yii\web\Response::formatters|response]].
## Обсуждение содержимого <a name="content-negotiation"></a> ## Согласование содержимого <a name="content-negotiation"></a>
Yii поддерживает обсуждение содержимого с помощью фильтра [yii\filters\ContentNegotiator]]. Базовый класс Yii поддерживает согласование содержимого с помощью фильтра [yii\filters\ContentNegotiator]]. Базовый класс
контроллера RESTful API [[yii\rest\Controller]] использует этот фильтр под именем `contentNegotiator`. контроллера RESTful API [[yii\rest\Controller]] использует этот фильтр под именем `contentNegotiator`.
Фильтр обеспечивает соответствие формата ответа и определение языка. Например, если RESTful API запрос Фильтр обеспечивает соответствие формата ответа и определяет используемый язык. Например, если RESTful API запрос
содержит следующий заголовок: содержит следующий заголовок:
``` ```
Accept: application/json; q=1.0, */*; q=0.1 Accept: application/json; q=1.0, */*; q=0.1
``` ```
Он будет получать ответ в формате JSON следующего вида: Он будет получать ответ в JSON-формате следующего вида:
``` ```
$ curl -i -H "Accept: application/json; q=1.0, */*; q=0.1" "http://localhost/users" $ curl -i -H "Accept: application/json; q=1.0, */*; q=0.1" "http://localhost/users"
...@@ -59,11 +59,11 @@ Content-Type: application/json; charset=UTF-8 ...@@ -59,11 +59,11 @@ Content-Type: application/json; charset=UTF-8
[[yii\filters\ContentNegotiator]] проверит HTTP-заголовок `Accept` в запросе и установит, что [[yii\filters\ContentNegotiator]] проверит HTTP-заголовок `Accept` в запросе и установит, что
[[yii\web\Response::format|формат ответа]] должен быть в `'json'`. После того, как экшн будет выполнен и вернет [[yii\web\Response::format|формат ответа]] должен быть в `'json'`. После того, как экшн будет выполнен и вернет
результирующий объект ресурса или коллекцию, [[yii\rest\Serializer]] конвертирует результат в массив. результирующий объект ресурса или коллекцию, [[yii\rest\Serializer]] конвертирует результат в массив.
И, наконец, [[yii\web\JsonResponseFormatter]] сериализует массив в строку JSON и включит ее в тело ответа. И, наконец, [[yii\web\JsonResponseFormatter]] сериализует массив в строку в формате JSON и включит ее в тело ответа.
По умолчанию, RESTful APIs поддерживает и JSON, и XML форматы. Для того, чтобы добавить поддержку нового формата, По умолчанию, RESTful APIs поддерживает и JSON, и XML форматы. Для того, чтобы добавить поддержку нового формата,
вы должны установить свою конфигурацию для свойства [[yii\filters\ContentNegotiator::formats|formats]] у фильтра вы должны установить свою конфигурацию для свойства [[yii\filters\ContentNegotiator::formats|formats]] у фильтра
`contentNegotiator`, похожую на следующие классы контроллеров API: `contentNegotiator`, например, с использованием поведения такого вида:
```php ```php
use yii\web\Response; use yii\web\Response;
...@@ -84,12 +84,13 @@ public function behaviors() ...@@ -84,12 +84,13 @@ public function behaviors()
Как уже описано выше, [[yii\rest\Serializer]] - это центральное место, отвечащее за конвертацию объектов ресурсов Как уже описано выше, [[yii\rest\Serializer]] - это центральное место, отвечащее за конвертацию объектов ресурсов
или коллекций в массивы. Он реализует интерфейсы [[yii\base\ArrayableInterface]] и [[yii\data\DataProviderInterface]]. или коллекций в массивы. Он реализует интерфейсы [[yii\base\ArrayableInterface]] и [[yii\data\DataProviderInterface]].
[[yii\base\ArrayableInterface]] реализуется для объектов ресурсов, а [[yii\data\DataProviderInterface]] - для коллекций. Для объектов ресурсов как правило реализуется интерфейс [[yii\base\ArrayableInterface]], а для коллекций -
[[yii\data\DataProviderInterface]].
Вы можете переконфигурировать сереализатор с помощью настройки свойства [[yii\rest\Controller::serializer]], используя Вы можете переконфигурировать сериализатор с помощью настройки свойства [[yii\rest\Controller::serializer]], используя
конфигурационный массив. Например, иногда вам может быть нужно помочь упростить разработку на клиенте с помощью конфигурационный массив. Например, иногда вам может быть нужно помочь упростить разработку клиентской части
добавления информации о пагинации непосредственно в тело ответа. Чтобы сделать это, переконфигурируйте свойство приложения с помощью добавления информации о пагинации непосредственно в тело ответа. Чтобы сделать это,
[[yii\rest\Serializer::collectionEnvelope]] следующим образом: переконфигурируйте свойство [[yii\rest\Serializer::collectionEnvelope]] следующим образом:
```php ```php
......
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