Не могу включить API в виде отдельного модуля

Всё что касается построения API
Ответить
alex290
Сообщения: 10
Зарегистрирован: 2017.10.09, 15:24

Не могу включить API в виде отдельного модуля

Сообщение alex290 »

Народ помогите. Только начал изучать REST API

web.php

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

'modules' => [
        'api' => [
            'class' => 'app\modules\api\v1\Module',
            'basePath' => '@app/modules/api/v1',
            'defaultRoute' => 'user',
            'layout' => false,
        ],
        .......
        
'urlManager' => [
            'enablePrettyUrl' => true,
            'enableStrictParsing' => true,
            'showScriptName' => false,
            'rules' => [
                'class' => UrlRule::class,
                'controller' => 'user'
            ],
        ],
В самом модуле сделал по документации UserControler

если убрать = 'enableStrictParsing' => true, то при запроce http://localhost/api/user появляется xml ответ

Но неработет например http://localhost/api/user/1 или http://localhost/api/users/1 вообще никаких вариантов

Если поставить 'enableStrictParsing' => true - то вообще 404 по всему сайту

И не могу найти причину никак

user
Сообщения: 154
Зарегистрирован: 2017.12.05, 16:55

Re: Не могу включить API в виде отдельного модуля

Сообщение user »

я делаю так:

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

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

marsden
Сообщения: 10
Зарегистрирован: 2019.11.25, 09:28

Re: Не могу включить API в виде отдельного модуля

Сообщение marsden »

причина в ненастроенности .htaccess для апача. Если используете openserver, то в каталоге web с головным index.php обязательно должен быть правильный .htaccess следующего содержания (из доки)

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

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
бездумный копипаст приводит к безумным результатам

Ответить