@trieste

Как настроить маршрутизацию Yii2 restApi?

Как правильно настроить стандартную маршрутизацию для использования своих методов
'urlManager' => [
                        'enablePrettyUrl' => true,
                        'showScriptName' => false,
                        'rules' => [
                                    [
                                        'class' => 'yii\rest\UrlRule',
                                        'pluralize' => false,
                                        'controller' => ['ApiController'],
                                        'tokens' => [
                                                '{id}' => '<id:\\w+>'
                                        ],
                                        'patterns' => [
                                                'PUT,PATCH api/{id}/update' => 'api/update',
                                                'DELETE {id}/delete' => 'api/delete',
                                                'GET  {id}' => 'api/get',
                                                'POST ' => 'api/create',
                                                'GET,HEAD' => 'api/index',
                                                   ]
                                ],
                        ],
                ],</blockquote>


И контроллер:
public function actionIndex()
    {
        //  $id = Yii::$app->request->getQueryParam("id"); //
        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        return "ok";

    }


    public function actionGet()
    {
        // $id = Yii::$app->request->getQueryParam("id"); //
        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        return "get";
        //  return $this->render('index');
    }


Маршрут api/ возвращает экшен index, но маршрут api/3 возвращает 404
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Запрос не правильный, как я понял. Судя по вашим правилам
'GET {id}' => 'api/get'
Запрос должен быть такой: api/get?id=3. И, возможно, что лишний слэш
'tokens' => [
     '{id}' => '<id:\w+>'
],
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы