Полное руководство по Yii 2.0

Фреймворк Yii 2

Полное руководство по Yii 2.0

Данное руководство выпущено в соответствии с положениями о документации Yii.

All Rights Reserved.

2014 © Yii Software LLC.


Введение

Первое знакомство

Структура приложения

Обработка запросов

Основные понятия

Работа с базами данных

Получение данных от пользователя

Отображение данных

Безопасность

Кеширование

Веб-сервисы REST

Инструменты разработчика

Тестирование

Специальные темы

Виджеты

Хелперы


Аутентификация в Yii 2

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

Аутентификация

В отличие от веб-приложений, RESTful API обычно не сохраняют информацию о состоянии, а это означает, что сессии и куки использовать не следует. Следовательно, раз состояние аутентификации пользователя не может быть сохранено в сессиях или куках, каждый запрос должен приходить вместе с определенным видом параметров аутентификации. Общепринятая практика состоит в том, что для аутентификации пользователя с каждым запросом отправляется секретный токен доступа. Так как токен доступа может использоваться для уникальной идентификации и аутентификации пользователя, запросы к API всегда должны отсылаться через протокол HTTPS, чтобы предотвратить атаки «человек посередине» (англ. "man-in-the-middle", MitM).

Форматирование ответа Yii 2

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

Форматирование ответа

При обработке RESTful API запросов приложение обычно выполняет следующие шаги, связанные с форматированием ответа:

Маршрутизация в Yii 2

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

Маршрутизация

Имея готовые классы ресурсов и контроллеров, можно получить доступ к ресурсам, используя URL вроде http://localhost/index.php?r=user/create, подобно тому, как вы это делаете с обычными Web-приложениями.

На деле вам обычно хочется включить «красивые» URL-адреса и использовать все преимущества HTTP-методов (HTTP-verbs). Например, чтобы запрос POST /users означал обращение к действию user/create. Это может быть легко сделано с помощью настройки компонента приложения urlManager в конфигурации приложения следующим образом:

RESTful контроллеры Yii 2

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

Контроллеры

После создания классов ресурсов и настройки способа форматирования ресурсных данных следующим шагом является создание действий контроллеров для предоставления ресурсов конечным пользователям через RESTful API.

В Yii есть два базовых класса контроллеров для упрощения вашей работы по созданию RESTful-действий: [[yii\rest\Controller]] и [[yii\rest\ActiveController]]. Разница между этими двумя контроллерами в том, что у последнего есть набор действий по умолчанию, который специально создан для работы с ресурсами, представленными Active Record. Так что если вы используете Active Record и вас устраивает предоставленный набор встроенных действий, вы можете унаследовать классы ваших контроллеров от [[yii\rest\ActiveController]], что позволит вам создать полноценные RESTful API, написав минимум кода.

Ресурсы RESTful API в Yii 2

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

Ресурсы

RESTful API строятся вокруг доступа к ресурсам и управления ими. Вы можете думать о ресурсах как о моделях из MVC.

Хотя не существует никаких ограничений на то, как представить ресурс, в Yii ресурсы обычно представляются как объекты [[yii\base\Model]] или дочерние классы (например [[yii\db\ActiveRecord]]), потому как:

Быстрый старт RESTful API Yii 2

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

Быстрый старт

Yii включает полноценный набор средств для упрощённой реализации RESTful API. В частности это следующие возможности:

  • Быстрое создание прототипов с поддержкой распространенных API к Active Record;
  • Настройка формата ответа (JSON и XML реализованы по умолчанию);
  • Получение сериализованных объектов с нужной вам выборкой полей;
  • Надлежащее форматирование данных и ошибок при их валидации;
  • Коллекция пагинаций, фильтров и сортировок;
  • Поддержка HATEOAS;
  • Эффективная маршрутизация с надлежащей проверкой HTTP методов;
  • Встроенная поддержка методов OPTIONS и HEAD;
  • Аутентификация и авторизация;
  • HTTP кэширование и кэширование данных;
  • Настройка ограничения для частоты запросов (Rate limiting);

Подкатегории