Представляю маленький проектик, посвященный примерам моего кода и тому, как я делаю RESTful API.
Все примеры выдраны из реальных проектов (без сохранения контекста) и не дорабатывались тут ни как.
docs/1/chronology/events.md — хронология событий
docs/1/chronology/gps.md — хронология gps координат
docs/2/README.md — описание структур данных для дальнейшей реализации на клиенте
source/1/components/ControllerTrait.php — расширение функционана базового yii\rest\Contrller
с возможностью удобного поиска модели по id
и проверкой авторизации на нужных методах action
Т.к. в yii2\rest все ошибки кроме валидации отобращаются в виде объекта, а ошибки валидации в виде массива, я дописал необходимые классы, для перевода вывода ошибок валидации в виде объекта. Теперь клиентам достаточно реализовать один объект для обработок ошибок, а не гадать, придет ли к ним массив или структурированный объект.
source/1/components/ErrorHandler.php — оборачивание массива ошибок в объект, для удобного и однотипного вывода информации в api source/1/components/ValidateException.php — ошибка вилидации формы для однотипного вывода в виде стандартной ошибки
soruce/2/ — пример работы с моделями и поиском для GridView