Как задать путь через GET-параметр в API Yii2?

Всё что касается построения API
Ответить
MarkL
Сообщения: 31
Зарегистрирован: 2017.07.05, 20:37

Как задать путь через GET-параметр в API Yii2?

Сообщение MarkL » 2019.09.24, 17:01

Необходимо чтобы путь к действию контроллера формировался на базе GET-параметра action.

Пример: Есть нативный URL:

Код: Выделить всё

domain.com/api/v1/order/create 
Необходимо чтобы был формат:

Код: Выделить всё

domain.com/api?action=add
То есть, значение action является "псевдонимом".

По-сути, решается с помощью URL-менеджера, но правило не дало ожидаемого результата:

Код: Выделить всё

'<action:add>' => 'v1/order/create'

yiiliveext
Сообщения: 867
Зарегистрирован: 2019.08.13, 01:49

Re: Как задать путь через GET-параметр в API Yii2?

Сообщение yiiliveext » 2019.09.24, 17:53

Сделайте какой-нибудь

Код: Выделить всё

public function actionDo($action)
{
    if ($action == 'add') {
        return $this->actionCreate();
    } 
}
Тогда в UrlManager

Код: Выделить всё

'api' => 'v1/order/do'

MarkL
Сообщения: 31
Зарегистрирован: 2017.07.05, 20:37

Re: Как задать путь через GET-параметр в API Yii2?

Сообщение MarkL » 2019.09.24, 18:04

yiiliveext, там около 6 методов API в разных контроллерах, с разными данными и мецтодами. Поэтому, в предложенном варианте есть ряд минусов

yiiliveext
Сообщения: 867
Зарегистрирован: 2019.08.13, 01:49

Re: Как задать путь через GET-параметр в API Yii2?

Сообщение yiiliveext » 2019.09.24, 18:27

MarkL писал(а):
2019.09.24, 18:04
yiiliveext, там около 6 методов API в разных контроллерах, с разными данными и мецтодами. Поэтому, в предложенном варианте есть ряд минусов
Тогда наследуйтесь от yii\web\UrlRule и делайте свое правило.

Ответить