NewController для REST API

Всё что касается построения API
Ответить
Trump
Сообщения: 5
Зарегистрирован: 2017.04.13, 15:30

NewController для REST API

Сообщение Trump »

Добрый день!

Помогите, пожалуйста разобраться с REST API.
Создал API согласно этой инструкции:
http://www.yiiframework.com/doc-2.0/gui ... start.html
Возник первый вопрос:

/user
/users

Работают и выводят список пользователей

/user/1 - не работает
/users/1 - работает ?

Почему так?

Вопрос второй создал ещё контроллер TaskController, аналогичным с UserController образом

/task - работает
/tasks - работает

выводит полный список

/task/1 - не работает
/tasks/1- не работает

Хотя таблица User и Task имеют ключевое поле id.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: NewController для REST API

Сообщение ElisDN »

Включите 'enableStrictParsing' => true и будет только один вариант рабочий.
Trump
Сообщения: 5
Зарегистрирован: 2017.04.13, 15:30

Re: NewController для REST API

Сообщение Trump »

Попробовал включить, но после этого вообще перестали грузится страницы (ошибка Not Found (#404)),

настройки urlManager следующие, Yii2 basic:

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

urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'baseUrl' => '/',
            'rules' => [
                    ['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
                    ['class' => 'yii\rest\UrlRule', 'controller' => 'task'],
                ],
        ],
Trump
Сообщения: 5
Зарегистрирован: 2017.04.13, 15:30

Re: NewController для REST API

Сообщение Trump »

Собственно, всё получилось:
Исправил в конфигурации следующее:

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

['class' => 'yii\rest\UrlRule', 'controller' => 'task', 'tokens' => [
                        '{id}' => '<id:\\w+>'
                    ]],
В модель Task добавил:

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

    public static function primaryKey()
    {
        return ['id'];
    }
Как думаете ошибка была из-за того, что метод primaryKey() не был переопределён?
А почему с таблицей User всё было нормально?
Ответить