Как реализовать собственные методы обработки rest api в yii2?

Пользователь

от enid , в категории: PHP , 10 месяцев назад

Как реализовать собственные методы обработки rest api в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jakayla , 10 месяцев назад

@enid 

Для реализации собственных методов обработки rest api в Yii2 необходимо выполнить следующие шаги:

  1. Создать действие в контроллере, используя аннотацию "@action". Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class MyController extends yii
estController
{
    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return ArrayHelper::merge(parent::behaviors(), [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'my-action' => ['post'],
                ],
            ],
        ]);
    }

    /**
     * @inheritdoc
     */
    public function actions()
    {
        return [
            'my-action' => [
                'class' => 'appactionsMyCustomAction',
            ],
        ];
    }
}


  1. Создать собственный класс действия для обработки запроса. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
namespace appactions;

use yiiaseAction;

class MyCustomAction extends Action
{
    /**
     * @inheritdoc
     */
    public function run()
    {
        /* здесь можно производить дополнительную обработку
        и возвращать результат в нужном формате */

        return [
            'status' => 'success',
            'message' => 'My custom action was executed successfully!',
        ];
    }
}


  1. Зарегистрировать собственный класс действия в контейнере зависимостей приложения. Для этого нужно добавить следующий код в конфигурационный файл приложения:
1
2
3
4
5
6
7
'container' => [
    'definitions' => [
        'appactionsMyCustomAction' => [
            // здесь задаются параметры конструктора, если они нужны
        ],
    ],
],


После выполнения этих шагов собственный метод обработки rest api будет доступен по адресу /my-controller/my-action.