Commit ede4d8ee by Dmitry Korolev

small translation fixes

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