Я использую dingo / api для проекта, и все мои маршруты работают, кроме 1.
routes.php
$api = app('api.router');
$api->version('v1',['prefix' => 'api'], function ($api) {
$api->post('users', "App\Http\Controllers\Auth\UsersController@store");
...
});
метод хранения:
/**
*
* @param \App\Http\Requests\Auth\StoreUserRequest $request
* @return \Illuminate\Http\Response
*/
public function store(StoreUserRequest $request)
{
if( ! $this->isAdminRequest() )
{
return $this->dispatch(new RegisterUserCommand($request));
}
}
Этот маршрут бросает 405 Method Not Allowed Exception
,
php artisan api:routes
показывает, что он зарегистрирован как локально, так и на сервере.
Я использую POSTMAN для проверки моего API и имею все необходимые поля.
В ответ я получаю Разрешить: POST.
НОТА :
Любая помощь приветствуется. Благодарю.
ОБНОВИТЬ :
Хорошо, это была действительно глупая ошибка с моей стороны. Я бил ‘Домен / API / пользователей /’. Удаление трейлинга ‘/’ работал.
Но дело в том, локально ‘/’ работает а не на сервере.
Так что, возможно, этот вопрос стоит оставить для объяснения.
Очень хороший вопрос и с тех пор столкнулся с этим сам. Ваше обновление должно быть в ответе, так что если вы сделаете это, я могу удалить мое. Проблема для меня заключалась в том, что я action
например /some/action/
вместо /some/action
где маршрут ожидал его в последнем виде.
Я предполагал, что Laravel будет обрабатывать этот дополнительный конечный слеш как функцию, учитывая поведение в локальной среде, но это не так.
Других решений пока нет …