как разрешить доступ к PUT DELETE в RESTfull yii2

355
17 июня 2017, 14:37

Как разрешить доступ к PUT DELETE в RESTfull yii2 ? Использую angularjs.

Answer 1

В Yii2 по умолчанию уже есть поддержка всех методов REST API, для этого достаточно наследовать свой контроллер от контроллера \yii\rest\ActiveController.

Приведу на примере пользователей:

namespace app\controllers;
use yii\rest\ActiveController;
class UserController extends ActiveController
{
    public $modelClass = 'app\models\User';
}

Потом в конфигурации прописать в urlManager следующие правила:

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        ['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
    ],
]

И тогда у вас доступны все методы REST API:

  • GET /users: постраничный вывод всех пользователей;
  • HEAD /users: общий вывод информации о пользователях;
  • POST /users: создание пользователя;
  • GET /users/123: возвращает данные о пользователе 123;
  • HEAD /users/123: вовзращает общую информацию о пользователе 123;
  • PATCH /users/123 и PUT /users/123: обновляет пользователя 123;
  • DELETE /users/123: удаляет пользователя 123;
  • OPTIONS /users: показывает поддерживаемые методы относительно /users;
  • OPTIONS /users/123: показывает поддерживаемые методы относительно /users/123.

Это всё и более детально описано в гайде, правда на английском.

Answer 2

Похоже getBodyParams то, что вам нужно.

https://github.com/yiisoft/yii2/blob/master/framework/web/Request.php#L384

Как вариант можно getRawBody и парсить самому в зависимости от типа.

https://github.com/yiisoft/yii2/blob/master/framework/web/Request.php#L352

READ ALSO
Приведение даты/времени к формату и обратно

Приведение даты/времени к формату и обратно

Доброго времени сутокВопрос следующий - как привести дату/время к определённому формату, а после "выдернуть" из него дату/время

234
Как в эту строчку добавить md5? [требует правки]

Как в эту строчку добавить md5? [требует правки]

Как в эту строчку добавить md5?

292
Конвертация кодировки текста в PHP

Конвертация кодировки текста в PHP

Есть две переменные типа string: 1) задана вручную в php коде ($date1="14 июня"), 2) "содрана" при помощи cURL+phpQuery c удаленной страницы ($date2)

251
Laravel Eloquent циклы

Laravel Eloquent циклы

Есть код:

179